MySQL学习笔记-索引_3月18日2

 

1、什么是索引?

根据添加的索引列排序,查询的时候更快。

2、索引的优缺点:?

查询效率高,但是DML的时候维护成本也高(查询快,插入慢)。

3、mysql一张表最大多少条记录需要分表?

DDL的时候要锁,SSD的盘能支持单表1亿。(SAS盘iops 1000)

4、B+树 、page search、指针、叶子节点、page directory 、二分法找到记录。

5、disk 512字节、filesystem 4K、db 16K

6、页满的时候是如何split的?啥时候2层被split成3层?

7、online-DDL  、pt-online-schema-change的原理?解决主从延时问题,拷贝表耗时间。

general log查看    触发器  replace  ingnor  ,

触发器是触发的增量数据,全量数据insert into select 分批插入临时表。

8、什么是索引组织表IOT?

非叶子节点存放key+指针(6字节),聚集索引叶子节点存放数据,辅助索引的叶子节点存放(key,主键)。不加索引的表默认加主键的rowid.

9、page 16K, pk 8字节,行数据300字节,B+树的高度1、2、3、4的时候存放大概多少数据?

10、HDD IOPS 100 ,3次IO  多少秒? B+数3层,查询需要3次io,3/100=0.03秒。

11、根页是在内存的,不需要io。

12、回表?B+树3层,6次IO.

13、MyISAM是堆表,什么是堆表(heap table)?

数据是无序的,主键索引的叶子节点存放的指针,指向数据的。索引组织表的的叶子节点数据也是有序的。

14、堆表、索引组织表的优缺点?

堆表插入快?除非没有索引

堆表读快?聚集索引一样,回表相比的话,堆表key快。

堆表最大的缺点:行数据变大,物理地址变化,聚集索引的叶子节点和辅助索引的叶子节点也要更新。填充因子:

堆表主键范围查询慢。

15、怎么看B+树的高度?一般不会有这样的需求。

16、扇出表示有多少个指针。

17、<=>  存在null的表

select * from t where a = null;

select * from t where a = 1;

select * from t where a <=> 1;

18、复合索引是否创建的高效?

select * from t where a= ,b =, order by c

select * from t where a=,b=,c=;

(a,b,c)  (b,a,c)

将选择度比较高的列放到前面。

 

posted on 2017-12-04 00:22  星期六男爵  阅读(113)  评论(0编辑  收藏  举报

导航