MySQL阶段性学习总结

MySQL阶段性学习总结

数据库设计规范

  • 首先要熟悉所在公司的数据库设计规范。
  • 所有数据库对象名称必须使用小写字母并用下划线分开,因为mysql数据库对大小写敏感。
  • 所有数据库的名称禁止使用mysql保留关键字.
  • mysql的命名要做到见名识义,并且最好不要超过32个字符。
  • 所有表必须使用Innodb存储引擎,因为其支持事物,还有行级锁,更好的恢复性,高并发下的性能更加好。
  • 数据库和表的字符统一使用UTF-8.一个汉字对应三个字节,而一个英文字符占用一个字节。
  • 所有的表和字段必须加注释,便于开发人员理解和其他人员的维护。
  • 谨慎使用分区表,分区表在物理上表现为多个文件,在逻辑上表现为一个表。
  • 尽量做到冷热数据(常用和不常用的数据)分离,减小表的宽度。
  • 禁止在数据库中存储图片和文件等二进制数据。
  • 索引对数据库的查询性能非常重要,但是滥用会影响mysql的跟新和删除性能和效率。
  • 数据库字段设计时,优先选择符合储存需要的最小数据类型。尽量避免使用TEXT,BLOB,EMUM数据类型。
  • 存储同财务相关的金额数据时,必须使用decimal数据类型,因为decimal为精准浮点型,在计算时不会存在数据丢失。

SQL开发规范

  • 建议使用预编译语句进行数据库操作。
  • 避免数据类型的隐式转换。
  • 禁止使用select * 及没有字段列表的insert操作
  • 优先利用表中已存在的索引进行操作。
  • 超过100万行的数据进行写操作时,要分批多次进行操作。

数据库的设计范式

  • 数据库设计最低要满足第三范式(设R是一个满足第一范式条件的关系模式,X是R的任意属性集,如果X非传递依赖于R的任意一个候选关键字,称R满足第三范式,简记为3NF)的要求
  • 有时候,有些规范设计也不必全都遵守,因为全的遵守有时也会影响数据库的性能,视具体情况而定。

其他

  • 对查出的数据进行分页展示 可在where条件后面加上limit(n,m),n代表展示第几页的数据而m代表每页展示多少条数据。
  • 对所写的SQL进行执行计划分析,及是否用到索引可用EXPLAIN语句。如;EXPLAIN select name,age from user where age>10 limit 0,10
  • 执行计划(EXPLAIN)能告诉我们什么?1:SQL如何使用索引。2:连接查询的执行顺序。3:查询扫面的数据行数
  • 无论在任何时候,在删除数据一些比较特殊的数据前,记得备份一份。
  • 如何捕获有问题的SQL,可启用mysql慢查询日志
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值