SQL优化

1、少用IN,可以同between和链接替换

2、减少全表扫描

3、select后面尽量写写出需要的字段名,而不是用‘*’指代全部

4、少使用or

5、union all

6、IN适合于外表大而内表小的情况;EXISTS适合于外表小而内表大的情况

7、where语句中  a*2 =10 改成a = 10/2

8、避免where中字段类型强制转换,可以在确定类型时,转换字段类型,避免强制类型转换

9、对于联合索引来说,如果存在范围查询,比如between、>、<等条件时,会造成后面的索引字段失效。

10、索引含有字段id、name、school,可以直接用id字段,也可以id、name这样的顺序,但是name;school都无法使用这个索引。所以在创建联合索引的时候一定要注意索引字段顺序,常用的查询字段放在最前面。

11、LEFT JOIN A表为驱动表,INNER JOIN MySQL会自动找出那个数据少的表作用驱动表,RIGHT JOIN B表为驱动表。

12、尽量使用inner join,避免left join

13、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引

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

15、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描

16、应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描

17、将会导致全表扫描 like '%123%'

18、索引并不是越多越好,索引固然可以提高相应的 select 的效率,但同时也降低了 insert 及 update 的效率

19、索引

20、分库:电商项目将一个项目进行分割,拆成多个小项目,每个小项目有自己单独的数据库,互不影响----垂直分割 会员数据库,订单数据库,支付数据库

21、分表:

posted @ 2023-03-02 17:21  Carllll  阅读(16)  评论(0编辑  收藏  举报