xiwenAndlejian / my-blog

Java基础学习练习题
1 stars 0 forks source link

高性能MySQL学习笔记(一) #6

Open xiwenAndlejian opened 5 years ago

xiwenAndlejian commented 5 years ago

读写锁:

读锁(read lock)又名共享锁(shared lock) 写锁(write lock)又名排他锁(exclusive lock) 读锁互不阻塞,多个读锁可以同时读取同一资源,而互不干扰。 写锁排他,同一资源同一时刻只能有一个写锁进行操作,会阻塞其他写锁和读锁。 写锁一般优于读锁

两种重要的锁策略:

表锁(table lock):开销最小的策略。锁定整个表,当一个用户获得写锁时,会阻塞其他用户的读写操作。没有写锁时,其他用户才能获得读锁,读锁之间互不阻塞。 行级锁(row lock):可以最大程度的支持并发处理(同时也带来了最大的锁开销)。

事务的四大特性(ACID)及其含义:

四个隔离级别:

SQL四种语言:DDL、DML、DCL、TCL 各自定义&语句 https://www.cnblogs.com/henryhappier/archive/2010/07/05/1771295.html

多版本并发控制(MVCC)

InnoDB 的 MVCC 实现:通过在每行记录后面保存两个隐藏的列来实现的。一个保存了行的创建时间,一个保存行的过期时间(或删除时间)。存储的并非是实际时间值,而是系统版本号(system version number)。每开始一个新的事务,系统版本号都会自动递增。

MVVC 只在 REPEATABLE READ 和 READ COMMITTED 两个隔离级别下工作。其他两个隔离级别和 MVCC不兼容。

显示表的相关信息:SHOW TABLE STATUS eg: SHOW TABLE STATUS LIKE ‘user’; (包含当前自增长值)

如果要用到全文索引,建议优先考虑 InnoDB 加上 Sphinx 的组合,而不是使用支持全文索引的 MyISAM。