再看一次《高性能mysql》读书问题汇总笔记,不写答案。每过一段时间查看加深印象。
1.mysql如何并发控制数据正确性?
2.解释读锁和写锁:读锁写锁是否都会相互阻塞?
3.锁的粒度有哪些?不同的粒度开销如何?
4.事务ACID是哪些?
5.隔离级别有哪些?mysql默认是哪种隔离级别?隔离性越强不代表越好?mysql如何解决幻读?(间隙锁)
6.死锁原因
7.innodb能检测到死锁,默认是怎么处理死锁的?(将持有最少行级排它锁的事务回滚)
8.事务日志的好处
9.什么场景下选择什么引擎,如何转换表的引擎
10.基准测试(是什么,测试哪些指标,方法)
11.如何确认服务器是否达到性能最佳状态?
12.怎么找出某条语句为什么执行太慢?
13.慢查询日志开启是否会有很大的开销?性能是否影响?
14.简单介绍剖析报告工具 pt-query-digest v/m
15.选择数据类型的原则哪些不对?(越小越好,简单就好【整型和字符】,尽量避免null)
16.TimeStamp和Datetime,varchar和char 区别
17.alter table 修改大表有什么注意点和方式
18.最左前缀列含义,跳过中间索引列查找后面索引是否会使用?
19.innodb 索引为什么选择B+Tree,(按顺序存储,叶子到根距离相同,方便范围查找)
20.解释聚集索引(数据顺序和索引指针顺序一致),非聚集索引,非聚集索引查询几次?
21.高性能索引策略
21.1 索引如果是表达式或者函数一部分:select* from student where id+1=5 会发生什么?
21.2 前缀索引注意点,过长的问题
21.3 多列索引注意点 顺序注意点(同序号18 一部分概念)
21.4 重复索引问题(同一列多个索引)
21.5 索引对于锁 有什么帮助
22.Mysql查询优化器的局限
22.1 select *from Film where filmId in (select filmId from actor where actorid=1) 实际优化后的sql是什么样的。 应该换成什么形式解决全表扫描? ❤❤
23.优化特定类型查询
23.1 count()
23.2 on using
23.3 groupby distinct
23.4 limit 分页
23.5 union