首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Myisam在读取(主要是读取应用程序)和简单查询时速度更快?

为什么Myisam在读取(主要是读取应用程序)和简单查询时速度更快?
EN

Stack Overflow用户
提问于 2011-05-02 02:11:41
回答 1查看 598关注 0票数 1

我已经阅读了一些关于Mysql的材料,Myysql性能博客和一些书籍。

据说,如果你有一个主要基于阅读的应用程序,你应该使用Myisam,因为它比Innodb更好。此外,Myisam的非联接查询速度更快。

为什么当它支持表锁(我想只针对写),而Innodb有行级锁时,它应该能为读写提供更好的性能。

我只是想知道,为什么所有的阅读材料都说,如果你的应用程序比95%> read更快,那么Myisam的读取速度会更快,但没有对此提供任何解释。

我希望有知识的人能在不否决和结束问题的情况下回答这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-02 02:25:34

表级锁的检查速度更快,但是当它们存在时,它们会阻塞对表的所有其他访问。如果你主要是在阅读,那么你想要得到最快的“我没有被锁定”的检查。

行级锁定允许在表上同时执行其他操作,但是它们在实现和检查方面的空间/时间开销更大。

因此,如果你在桌子上进行95%+读取(对于大多数web应用来说是典型的),那么MyISAM就赢了。有些表(如会话表或用户跟踪表)的写操作和读操作一样多,每次更新时锁定整个表可能会使活动站点的爬行速度变慢。

尝试通过使用各种表的索引卡创建一个“数据库”来测试这一点,并模拟每次有一个访问者访问站点时会发生什么。然后在5、10或50个访问者同时点击代码的情况下尝试它。很快就会发现,会话表上的表级锁是show stopper。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5850324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档