when_less_is_more通过本文主要向大家介绍了sql,优化等相关知识,希望本文的分享对您有所帮助
对SQL的优化的根本之道还是得从SQL语句入手,常用的SQL语句百分之八十以上都是查询相关,因此,我们主要从查询的角度进行优化:
1. 对查询进行优化,应该尽量避免全表的扫描,可在相应列上建立索引。
2. 减少查询字段数
3. 表格相互关联时,尽量使用主键
4. 查询条件应尽量避免使用模糊查询,因为此操作可使索引失效
5. 避免使用排序字段,排序字段尽量使用主键
既然已经讲到索引相关的知识,顺道提一下聚集索引和非聚集索引
聚集索引:索引项的顺序与表中记录的物理顺序一致索引。索引一般通过B+树的数据结构实现,因为B+的磁盘IO次数更少,每次查询都到叶子节点,更稳定。
叶子节点中存储了真实的数据行,不再有另外单独的数据页。在一张表上最多只能创建一个聚集索引,因为物理顺序只有一种,且一般在主键上。
非聚集索引:索引项的顺序与表中记录的物理顺序无关。叶子节点仍然是索引节点,里面存储的是一个地址,指向数据块。
索引什么情况下会失效?
1. 索引字段进行判空查询时,如is null 或者 is not null
2. 索引字段进行模糊查询时,如like '%c'
3. 判断索引列是否等于某个值时,如!=
4. 对索引列进行运算时