2 数据库的并发控制
1读写锁(读锁[共享锁],写锁[排它锁])
2锁粒度 (表锁,行锁)
3
死锁产生的原因:1.数据冲突 2.存储引擎的实现导致的。
. innodb处理死锁的问题:将持有最少行级排它锁的事物进行回滚。
4. MySQL的服务器层不管理事物。事务是有存储引擎层面实现的.所以一个事务中使用多种存储引擎不可靠。例如 A表使用了innodb。 B表使用了Myisam 。在一个事务中同事使用两个引擎,如果正常提交没有问题,如果如果需要回滚,则非事务表中的数据无法撤销
(myisam表中的数据无法撤销)将会导致不一致的状态。
5 多版本并发控制
6 当创建表时,MySQL将为每个数据库保存为数据库目录下的一个子目录创建表时,数据库会在子目录下创建一个和表同名的 .frm文件保存表的定义
*SHOW TABLE STATUS LIKE 'promoter_settlement' (查看表的状态)
Myisam 锁表。读取时加共享锁,写入时候加排他锁,但在表的读取查询的时候也可以写入新的记录(并发插入)
Myisam支持全文索引
选择引擎主要基于:
事务 , 备份 ,崩溃回复 ,特有的特性。
1数据库服务器的性能用查询的响应时间来度量,单位是每个查询花费的时间。
优化的步骤1。时间花在了什么地方 2 针对性的去优化