最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

聊一聊MySQL语句优化注意准则

XAMPP相关 admin 15浏览 0评论

今天聊一聊MySQL数据库的SQL语句优化~~~

1: 不要使用select * ,而是使用select字段

只取需要的字段,减少网络开销   select * 可能会造成回表查询

2: 如果知道查询结果只有1条,或者只要最大/最小一条记录,建议用limit 1 (加limit 1主要是为了防止全表扫描)

3: 尽量避免在where子句中使用or来连接条件(使用or 可能会造成全表扫描)

4: 优化limit分页 偏移量特别大的时候,查询效率就变得低下, 因为mysql不是跳过偏移量直接取后面的数据,而是取偏移量+要取的条数,然后把前面偏移量这一段的数据抛弃掉返回  使用order by + 索引 或者 where id> 1000 limit 10

5: 优化like。把%放在前面不走索引,%放在后面还是走索引的

6: 使用where条件限定要查询的数据,避免返回多余的行

7: 尽量避免在索引列上使用mysql的内置函数

8: 避免where子句 中对字段进行表达式的操作

9: inner join  left join  right join 优先使用inner join  如果是left join 左边表结果尽量小

10: 尽量避免在where子句中使用!= 或<> 操作符,否则引擎将放弃索引而进行全表扫描

11: 使用联合索引时,注意索引列的顺序,遵循最左匹配原则 联合索引abc,相当于创建了a / ab /abc三个索引

12: 对查询进行优化,应考虑在where及order by 涉及的列上创建索引,尽量避免全表扫描

13: 如果插入数据过多,考虑分批插入

14: 在适当的时候,使用覆盖索引,覆盖索引不需要回表,提高查询效率

15: distinct 过滤一个字段就好,最好不要过滤多个字段,多个字段数据库引擎就会对数据比较,过滤掉重复的数据,占用cpu时间

16: 删除重复索引

17: 数据量较大,进行批量修改或者删除

18: where子句中考虑使用默认中代替null

19: 不要有超过5个表以上的表连接

20: exist和in合理使用

21: 尽量用union all替换union

22: 索引不宜太多,一般5个以内

23: 尽量使用数字型字段

24: 索引不适合建立在有大重复数据的字段上

25: 避免向客户端返回过多数据量

26: 尽量使用varchar代替char。varchar是变长,变长字段存储空间小

27: 如果字段类型是字符串,where时一定用引号括起来,否则索引失效

转载请注明:XAMPP中文组官网 » 聊一聊MySQL语句优化注意准则