mysql: row-level locking 的overhead 更大,兼论myisam的适用场景

row-level locking 的overhead 比table-level locking的overhead更大:  更慢,需要消耗更多内存。

至于为什么?我没读过源码,在网上也没搜到具体的原因。只看到一句勉强可以接受的解释:Row locking is more complex than table locking, and so it’s slower and takes more memory.

不管为什么,这个结论让人有点吃惊,对不对?

另外要注意的是,myisam中shared table lock并不会阻止对表的插入操作,一边读一边插入,MyISAM还是挺快的。

结合以上两点:1.table lock更轻; 2. table lock不阻止插入,如果你的业务不需要事务,又以insert和select为主的话,那么MyISAM是比InnoDB更好的选择。

Leave a Comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.