Mysql中基本语句优化的十个原则小结
前言
在数据库的应用中,程序员们通过不断的实践总结了很多经验,这些经验是一些普遍的适用规则,每一个程序员都应该了解并记住它们,在构造sql时,养成良好的习惯,下面话不多说,来看看详细的介绍:
mysql基本语句优化原则
一、尽量避免在列上运算,这样会导致索引失效
select * from t where YEAR(d) >= 2011;
优化为
select * from t where d >='2011-0101'
二、使用 JOIN 时,应该用小结果集驱动大结果集,同时把复杂的 JOIN 查询拆分成多个query,因为 JOIN 多个表,可能导致更多的锁定和堵塞
三、使用 LIKE 时,避免使用 %%
四、select 指定查询字段,不要全查出来,节省内存
五、使用批量插入语句节省交互
六、limit的基数比较大时,使用 between,between 限定比 limit 快,但是between也有缺陷,如果id中间有断行或是中间部分id不读取的情况,数据会少
select * from t where 1 limit 100000,10
优化为
select * from t where id between 100000 and 100010
七、不要使用 rand 函数取多条随机记录
八、避免使用 NULL
九、不要使用 count(id)
, 而应该是 count(*)
十、不要做无谓的排序操作,而应尽可能在索引中完成排序
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
相关文章
pymysql.err.DataError:(1264, ")异常的有效解决方法(最新推荐)
遇到pymysql.err.DataError错误时,错误代码1264通常指的是MySQL数据库中的Out of range value for column错误,这意味着你尝试插入或更新的数据超过了对应数据库列所允许的范围,这篇文章主要介绍了pymysql.err.DataError:(1264, ")异常的有效问题,需要的朋友可以参考下2024-05-05解析数据库分页的两种方法对比(row_number()over()和top的对比)
本篇文章是对数据库分页的两种方法对比(row_number()over()和top的对比)进行了详细的分析介绍,需要的朋友参考下2013-07-07MySQL5.7 group by新特性报错1055的解决办法
项目中本来使用的是mysql5.6进行开发,切换到5.7之后,突然发现原来的一些sql运行都报错,错误编码1055,错误信息和sql_mode中的“only_full_group_by“有关。下面小编给大家分享下解决办法2016-12-12一文搞清楚MySQL count(*)、count(1)、count(col)区别
本文主要介绍了MySQL count(*)、count(1)、count(col)区别,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2022-03-03
最新评论