MYSQL优化

mysql优化一个基本的原则:任何一条sql都应该避免全表扫描

  • 在where,order by,group by 所涉及的列上建立索引
  • 避免对字段进行null值的判断
  • 避免在where条件语句中使用!= / <>操作符
  • where 语句中使用or会致使放弃索引
  • in 与not in 应该慎用,对于连续的数值,应该优先考虑使用between
  • like '%adb%' 也会导致全表扫描,可以考虑全文检索
  • 应该尽量避免对字段进行表达式操作 比如:select id from test where id/2 = 100;
  • 避免where语句中对字段进行函数操作 比如:select id from t where substring(name,1,3) = 'abc' 应改为:select id from t where name='abc%'
  • where 语句的左边都不应该进行函数,算术运算及其他表达式的运算
  • 索引为复合索引的时候,索引中的第一个字段作为条件时,索引才会生效。比如复合索引(city+id),select id from t order id;此时的索引不会生效
  • 很多时候使用exist 代替in 比较好
  • 索引字段有大量的重复数据时,查询的效率不会很高
  • 索引数不应该超过6个
  • 尽量使用数字类型字段
  • 任何时候不用使用slect * from t


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值