锁的种类(mysql)

表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。
       行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。
       页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。

优化方式

1.尽量减少查询出来的字段
2.合理的表设计
3.使用存储过程
4.给字段加索引

- ISAM

ISAM执行读取操作的速度很快,而且不占用大量的内存和存储资源 

 ISAM的两个主要不足之处在于,它不支持事务处理,也不能够容错 

 备份你所有的实时数据,通过其复制特性,MYSQL能够支持这样的备份应用程序

 只支持表级锁

- MYISAM

MYISAM是MYSQL的ISAM扩展格式和缺省的数据库引擎 

MYISAM强调了快速读取操作,这可能就是为什么MYSQL受到了WEB开发如此青睐的主要原因:在WEB开发中你所进行的大量数据操作都是读取操作。所以,大多数虚拟主机提供商和INTERNET平台提供商只允许使用MYISAM格式。

其代价是你需要经常运行OPTIMIZE TABLE命令,来恢复被更新机制所浪费的空间

表级锁

- HEAP

EAP允许只驻留在内存里的临时表格。驻留在内存里让HEAP要比ISAM和MYISAM都快,但是它所管理的数据是不稳定的,而且如果在关机之前没有进行保存,那么所有的数据都会丢失

- INNODB和BERKLEYDB

比ISAM和MYISAM引擎慢很多,但是INNODB和BDB包括了对事务处理和外来键的支持,这两点都是前两个引擎所没有的

BDB支持页级锁和表级锁默认为页级锁

InnoDB支持行级锁和表级锁默认为行级锁