了解mysql的基础知识,这些对马上进行优化可能没有太大的用处,但这是基础
1 并发控制
读锁和写锁 在并发读或者写的时候会产生读锁和写锁
锁粒度
表锁和行级锁
事务
2 Mysql 存储引擎(这里只比较myisam和innodb)
Myisam
存储 myisam将数据库分为索引文件和数据文件,分别存储为.myi和.myd.用户可以在不同服务器上拷贝数据文件和索引文件 .frm文件存储表定义
加锁与并发 在执行读取的时候,用户可以插入(并发插入)
自动修复,myisam支持对myisam表的自动检查和修复
索引特性
每个myisam表最多可以有64个索引,每个索引最大的列数是16个,这些都可以调整
InnoDB 是专为事务处理的存储引擎
选择合适的存储引擎
引擎的选择可以基于每一张表,要考虑的因素
事务处理 如果不需要考虑事务处理,平时的操作多是select和insert,那么选用myisam是不错的选择
并发 如果只是满足并发的插入和读操作,myisam都是不错的选择。如果需要混合型的并发操作,并且操作之间要互不干扰,那么支持行级锁的是更好的引擎选择
备份 常规的备份也会影响表的选择
崩溃后恢复,因为myisam比innodb来说容易崩溃,崩溃后需要用多长时间来恢复,这是个值得考虑的问题。很多人在数据库不需要事务处理的时候仍然选用inndob就是这个原因
特有特性
选择存储引擎的实例