sql优化常用的15种方法,sql语句优化方法,SQL优化的N种方法(小结)

sql优化常用的15种方法,sql语句优化方法,SQL优化的N种方法(小结)

本文主要介绍了SQL优化的N种方法,通过示例代码进行了非常详细的介绍。对大家的学习或工作都有一定的参考价值。有需要的朋友下面和边肖一起学习。

1.SQL语句中IN包含的值不应过多:

例如:select id from someone number in(1,2,3)。对于连续值,请使用between而不是in。

2.SELECT语句务必指明字段名称:

不要用*来查询,不要用*来查询,不要用*来查询,重要的事情说三遍,要找的具体字段写在哪个字段。

3.只查询一条数据的时候,使用limit 1

[这很有用]

4.避免在where子句中对字段进行null值判断

5.避免在where子句中对字段进行表达式操作:

从用户中选择id,其中id * 100=500

上述sql对字段执行算术运算,这将导致引擎放弃使用索引。建议改为:

从id=500/100的用户中选择id;

6.对于联合索引来说,要遵守最左前缀法则:

例如,当使用组合索引(id,name,sex)时,它可以是id或id,name。禁用直接名称或性别将导致联邦索引失败。

注意:ID、姓名、性别的填充顺序不会影响,mysql会自动优化到最左边的匹配顺序。

前三条sql可以命中索引,中间两条不符合最左匹配原则。

最后一个sql具有最左边的索引id,因此该索引部分成功,部分无效。id字段索引已成功使用。

解释select * from `user _ test '其中uid=10

解释select * from` user _ test `其中uid=10,name=' know the time

解释select * from` user _ test `其中uid=10,name=' know the time '和phone=' 13047967256

解释select * from ` user _ test ` where name=' know the time ' and phone=' 13047967256 ';

解释select * from ` user _ test ` where name=' know the time ';

解释select * from `user_test `其中uid=10,phone=' 13047967256

7.尽量使用inner join,避免left join:

如果连接方式是inner join,MySQL会自动选择一个小表作为驱动表,不需要其他过滤条件,但是left join遵循左侧驱动右侧的原则,即left join左侧的表名就是驱动表。

8.注意范围查询语句:

对于联合索引,如果存在范围查询,如、等之间的查询,则以下索引字段将变得无效。

解决方案:在业务允许的情况下,使用=或=以免影响索引的使用。

9.不建议使用%前缀模糊查询:

比如像“%name”或者像“%name%”,这种查询会导致索引失效和全表扫描。但是你可以用“姓名%”。

10.在 where 子句中使用 or 来连接条件,如果or连接的条件有一方没有索引,将导致引擎放弃使用索引而进行全表扫描

解决方法:索引or连接的两端,就可以使用了。

11.应尽量避免在where子句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全表扫描

12.字符串类型的字段 查询的时候如果不加引号’’ ,会导致自动进行隐式转换,然后索引失效

关于SQL优化的N种方法(总结)这篇文章到此为止。更多相关SQL优化内容,请搜索我们之前的文章或者继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 使用sql语句实现查询排序,顺序和倒序的区别,sql按倒序排序
  • 使用sql语句实现查询排序,顺序和倒序的区别,sql按倒序排序,使用SQL语句实现查询排序,顺序和倒序
  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • 一篇文章带你入门sql编程语句,一篇文章带你入门sql编程题
  • 一篇文章带你入门sql编程语句,一篇文章带你入门sql编程题,一篇文章带你入门SQL编程
  • window无法启动mysql 1067,windows无法启动mysql57服务,错误1053
  • window无法启动mysql 1067,windows无法启动mysql57服务,错误1053,windows无法启动MySQL服务报错1067的解决方法
  • vb中adodb连接数据库,,VB语言使用ADO连接、操作SQLServer数据库教程
  • sql重复记录查询的几种方法有哪些,查询重复记录sql语句
  • sql重复记录查询的几种方法有哪些,查询重复记录sql语句,SQL重复记录查询的几种方法
  • sql语句的各个关键字的解析过程详细总结怎么写,sql语句的各个关键字的解析过程详细总结图
  • sql语句的各个关键字的解析过程详细总结怎么写,sql语句的各个关键字的解析过程详细总结图,SQL语句的各个关键字的解析过程详细总结
  • sql语句游标,sqlserver游标的使用
  • sql语句游标,sqlserver游标的使用,详解SQL游标的用法
  • 留言与评论(共有 条评论)
       
    验证码: