1.1索引
索引是存储引擎用于快速定位记录的一种数据结构,简单来说索引的出现就是为了提高数据的查询效率,就像书的目录一样 。索引有多种类型,B+数是InnoDB引引擎默认的索引结构。
1.2索引的分类
单值索引:一个索引只包含单个列,一个表中可以有多个单值索引
唯一索引:索引列的值必须唯一,可为空
复合索引:一个索引包括多个列
1.3注意事项
小型表(<一万)主键扫描更高效
中型以上(>10万)索引效果好,单表索引不能过多
主键不仅是一种索引类型,也是一种存储方式
1.4SQL优化和索引优化
随索引下推(ICP) 等技术从MySQL5.6开始引入,MySQL的查询效率得以提高。但依赖索引不
都是简单的单列索引,而是考虑了查询条件和查询列的多列复合索引。所以建立索引的时候要尽量
考虑建立多列索引,做查询的时候尽量考虑查询最少的列
索引是一把双刃剑(最重要的优化手段&影响写入的速度);多列索引效果好,善用多列索引
SQL优化首先要结合业务需求优化,其次要结合索引优化。
1.5
例题一:
优化前:
select cpc from cpc_daily
where darte_format('time','%Y-%m-%d') = date_frommat(now()),'%Y-%m-%d');
优化后:
select cpc from cpc_daily where 'time' > date_format(now(),'%Y-%m-%d');
例题二: