MySQL优化的几点建议

MySQL优化建议

  1. 设计数据表的时候要遵守三范式,但是不要严格遵守。可以适度打破范式。

  2. 一个表字段不适合过多。

  3. 常用表中只要保留常用的字段

  4. 尽量给每个字段添加NOT NULL

  5. 根据表的特点来选择合适的表引擎, 如果这个表经常被写,应该选择innodb,但是MySQL5.6一般都是选择innodb

  6. 根据表存放的数据来决定字符集,一般选择utf8,但是如果想要存放emoji表情,就应该选择utf8mb4

  7. 尽量选择更加小的数据类型,但是考虑扩展性

  8. 尽量使用数字类型,时间类型。

  9. 减少使用文本类型(text)

  1. 不要使用*,尽量支查需要的字段。原因:可以减少传输数据的大小

  2. 给每条查询SQL语句添加LIMIT,原因:可以减少传输数据大小

  3. 尽量根据索引来检索数据

  4. 尽量减少在MySQL中使用内置函数,减少在MySQL中进行运算

  5. 减少多表联查,可以适度冗余字段。 也可以通过切分多表联查语句,将多表联查变成单表查询

  6. 不要在核心业务的代码中使用子查询

  7. 给经常作为where/order by/left join on/distinct字段添加索引

  8. 合理添加联合索引

    //给name,pass建立联合索引
    select id,name,pass,sex from user where name='' and pass ='';
    
  9. 建立联合索引时,区分度大的字段放到前面

  10. or前后的字段都必须有索引

  11. 不要使用like,因为like会导致索引失效。 比如可以用全文搜索引擎会替换like,比如sphinx/xunsearch

转:https://www.3maio.com/w-detail/9

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值