一 数据库架构
二 索引
1. 为什么要使用索引
在大数据量的查询中提升查询速度,避免全表扫描;
2. 什么样的信息可以成为索引
过滤性好的字段;
3. 索引的数据结构
- 二叉树 : 极端情况下会退化为链表,层次会比较多;
- B-Tree结构 : 存储的索引有限;
- B + Tree结构 : 可以存储更多的索引关键字,非叶子节点保存索引,数据全部存在叶子节点中;
4. 密集索引和稀疏索引的区别
- 密集索引文件中的每个搜索码值都对应一个索引值;
- 稀疏索引文件只为索引码的某些值建立索引项;
- innodb是密集索引,MyIsam是稀疏索引;
5.如何定位并优化慢查询Sql.
- 根据慢日志定位慢查询sql(query_time,slow_query_log,slow_query_log_file);
- 使用explain等工具分析sql(type, expar);
- 修改sql或者尽量让sql走索引;
6. 联合索引的最左匹配原则成因与索引是建立的越多越好吗?
三 锁
1. MyISAM与InnoDB关于锁方面的区别.
1. MyISAM默认用的是表级锁,不支持行级锁;
2. InnoDB默认用的是行级锁,也支持表级锁;2. 数据库事物的四大特性.
原子性,一致性,隔离性,持久性;
3. 事物隔离级别以及各级别下的并发访问问题.
4. InnoDB可重复读隔离级别下如何避免幻读.
https://www.jianshu.com/p/4e102e55d7de
5. RC RR级别下的InnoDB的非阻塞读如何实现.
网友评论