今天遇到一个很奇怪的问题,mysql在执行一条select语句是,因表数据量较大,致使其余操做在等待。按照道理讲,select是不会锁表的。但是为啥呢?mysql
之前一直玩oracle,没遇到这样的问题。因此就在网上搜索了不少资料。sql
解释为:oracle
跟表的存储引擎有关。blog
根据网上资料解释,5.5以前的版本,存储引擎有myisam的,若表A(数据量相对较大)使用这个引擎,会在执行select过程当中(3min查询时间),若是有另外一个操做对A表的作写入,那么select操做将获取该表的锁,update操做将会被挂起,直到select执行完毕释放锁。date
若是表使用的存储引擎是Innodb 类型,就没必要担忧这种锁表操做了select
http://dwchaoyue.blog.51cto.com/2826417/1411235 这个连接有相关介绍搜索