美文网首页
sql优化和索引

sql优化和索引

作者: 春苟哈皮 | 来源:发表于2018-10-18 10:43 被阅读0次

1、选择数据类型遵循小而简单的原则
越小的数据类型通常会越快,占用更少磁盘、内存,处理时所需要的CPU周期也更少。
例如:使用整形存储ip地址,使用DATATIME存储时间。
2、如果一个列计划创建索引,最好设置为NOT NULL
3、INT类型长度固定4个字节32位,对他指定宽度,只会影响显示的长度,实际占用还是4字节。
4、对于状态码,推荐使用TYININT(1),占用1个字节,可以节省很多空间。

explain是查看优化器如何决定执行查询的主要方法。可以帮助我们深入了解MySQL的基于开销的优化器,还可以获得很多可能被优化器考虑到的访问策略的细节,以及当运行SQL语句时哪种策略预计会被优化器采用。
explain select SQL_NO_CACHE id,name from user where id=1
执行语句将会得到一系列这个sql语句执行信息。

返回信息
其中我们需要关注的是type和rows。
type是这句sql语句执行类型,好坏程度依次是:
system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL
一般来说,好的sql查询至少达到range级别,最好能达到ref。
rows是扫过的行数,这个值越贴近最终查询出的行数越好。

sql优化的具体形式,就是索引。
mysql5.5及以上版本默认使用InnoDB作为搜索引擎。相比较于MyISAM,InnoDB支持外键、行锁、事务。(注意,行锁是建立在命中索引的情况下)

索引由两种:聚集索引和非聚集索引。

聚集索引是以主键为查找key,在建表时默认创建的索引,在B+结构中,所有的叶子节点存储的是该id的记录全部数据,这里引入覆盖索引的概念:覆盖索引时sql查询时如果索引已经存储了这次sql想要查询的全部字段信息,则命中索引之后直接返回,查询速度很快。

非聚集索引,就是自定义索引,创建索引的字段不同会引起不同的效果。
1)最左前缀匹配原则,非常重要的原则,mysql会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整。
2)=和in可以乱序,比如a = 1 and b = 2 and c = 3 建立(a,b,c)索引可以任意顺序,mysql的查询优化器会帮你优化成索引可以识别的形式。

相关文章

  • MySQl优化学习笔记(七)SQL优化简介

    一、SQL优化简介 1、我们平时说的SQL优化就是优化SQl语句和索引(通俗说就是使用什么样的SQL语句能够让索引...

  • sql优化的一般策略

    sql 优化的一般策略:索引优化,sql改写,参数优化,优化器 索引优化 以select * from vvsho...

  • SQL Server数据库高级进阶之索引优化实战演练

    一、SQL Server索引优化本质 二、SQL Server索引存储机制 三、SQL Server索引类型分类 ...

  • Mysql索引

    提起优化 SQL,可能会把它理解为优化索引。简单来说这也不算错,索引在 SQL 优化中占了很大的比重。索引用得好,...

  • mysql数据库优化

    1. Mysql优化介绍 1.1 sql优化 a. sql优化分析b. 索引优化c. 常用sql优化d. 常用优化...

  • Mysql 优化提纲

    SQL & 索引 通过慢日志找到待优化的SQLs; explain 查询分析SQL执行计划; 索引优化; 数据库结...

  • 17.MySQL优化

    《高性能MySQL》——这本书都有的 “字段”优化总结 “索引”优化总结 索引的优化 “查询SQL”优化总结 “引...

  • Mysql 优化

    1.Sql优化 1)sql优化分析2)索引优化3)sql语句优化4)一些常用的技巧优化 (正则、函数) 2.优化数...

  • sql优化和索引

    1、选择数据类型遵循小而简单的原则越小的数据类型通常会越快,占用更少磁盘、内存,处理时所需要的CPU周期也更少。例...

  • Mysql查询优化

    mysql的优化思路: 日志、执行计划、索引、缓存(查询缓存和索引缓存)、SQL优化、分区、分表、分库、修改数据库...

网友评论

      本文标题:sql优化和索引

      本文链接:https://www.haomeiwen.com/subject/pjljzftx.html