1.1.1. 什么是视图
视图(VIEW)也被称作虚表,即虚拟的表,是一组数据的逻辑表示,其本质是对应于一条SELECT语句,
1.1.2. 视图的作用
如果需要经常执行某项复杂查询,可以基于这个复杂查询建立视图,此后查询此视图即可,简化复杂查询;
4个隔离级别
5.幻读是什么
如何优化索引?用redis怎么优化?慢SQL调优的具体过程
怎样防止大事务,及处理办法
MySQL 索引 如何优化索引 explain 关键字 索引失效
SQL调优了解吗?
首先找出慢sql(慢sql日志,show proceslist)
其次用explain执行慢sql获取执行计划(分析的字段key,type,rows,extra),找到sql执行慢的原因(没用使用索引,出现长事务造成死锁)
没有使用索引的原因可能是索引建立的有问题,也可能是where条件使用不当(所以答索引建立的准则,和sql语句想要使用索引的注意事项)
如果是长事物的话注意,如何避免长事物,以及如何如何检查长事务
为什么有主键索引树?
主键具有唯一性,我们往往通过主键去查询数据(来确保获取的结果唯一),如果没有主键索引我们用什么索引查询数据呢
next-key lock, record lock, gap lock?
六、Next-Key Locks
Next-Key Locks 是 MySQL 的 InnoDB 存储引擎的一种锁实现。
MVCC 不能解决幻影读问题,Next-Key Locks 就是为了解决这个问题而存在的。在可重复读(REPEATABLE READ)隔离级别下,使用 MVCC + Next-Key Locks 可以解决幻读问题。
#Record Locks
锁定一个记录上的索引,而不是记录本身。
如果表没有设置索引,InnoDB 会自动在主键上创建隐藏的聚簇索引,因此 Record Locks 依然可以使用。
#Gap Locks
锁定索引之间的间隙,但是不包含索引本身。例如当一个事务执行以下语句,其它事务就不能在 t.c 中插入 15。
SELECT c FROM t WHERE c BETWEEN 10 and 20 FOR UPDATE;
#Next-Key Locks
它是 Record Locks 和 Gap Locks 的结合,不仅锁定一个记录上的索引,也锁定索引之间的间隙。它锁定一个前开后闭区间,例如一个索引包含以下值:10, 11, 13, and 20,那么就需要锁定以下区间:
(-∞, 10]
(10, 11]
(11, 13]
(13, 20]
(20, +∞)
#
mysql是mvcc如何实现的
可重复读怎么解决不可重复读问题(我就对不可重复读举了个例子他就没让我继续往下说了)
怎么用sql语句实现乐观锁