SQL优化的一些方法

SQL优化的一些方法

1.在查询过程中,尽量避免全表扫描,考虑在whereorder by涉及的列上建立索引。
2.尽量避免在where子句中对字段进行NULL的判断,建议不使用NULL,因为在查询的时候NULL是不会通过索引来检索的,他会放弃使用索引而进行全表扫描。
3.尽量避免查询条件中使用like关键字,像%…%%...这样的条件是没有办法使用索引的。使用的是全表扫描,还有就是由于匹配算法的关系,like的字段长度越大,模糊查询的效率越低。并且优化空间很小。
4.不要在where子句中使用!=<>操作符。原因同上,放弃索引,使用全表扫描。可以使用or来修改。
�6.or有时候也会导致全表扫描,一个字段有索引,一个字段上没有索引,在使用or的查询的时候也会导致全表扫描。
7.避免对字段进行表达式操作或者函数操作。
8.update操作,如果只更改1、2个字段的话,不要修改所有字段。否则频繁调用会引起明显的性能消耗,同时带来大量日志。
9.连接的使用,在使用表join的时候,如果有分页的话,先分页在join。否者逻辑上的读写会很高,性能很差。当然要考虑分页前后的消息展示是否会因为join进行缺失。可能会导致两个操作方式显示的结果不一致。很有可能不一致。
10.不带任何条件的count函数,会引起全表扫描?也就是说count(*)count(id)是有区别的么?不同MySQL的版本这个函数的性能不一样。
11.�索引的类型(BTREE,RTREE,HASH,FULLTEXT)。索引也并不是越多越好,可能在查询的时候很方便,但是在插入和修改操作的时候,可能会出现索引重建的情况。所以索引的使用也要看具体的情况。索引太多了需要考虑哪些不常使用的索引是否有存在的必要,或者使用别的解决方法。
12.拆分大的delete或者insert语句,可以使用批处理,同时这两个操作会出现锁表的情况。
13.尽量避免使用大的事务,控制事务的粒度。能提高系统的并发能力。

参考文章:[数据库SQL优化大总结之 百万级数据库优化方案]
加上了部分自己的总结

部分比较好用的MySQL的相关操作,简单记录

设置终端MySQL的编码。
set names"utf8";

输出查询结果到文件
into outfile '/tmp/a.csv'

    原文作者:lothar_cly
    原文地址: https://www.jianshu.com/p/4c25627a4f94
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞