首页 / MYSQL / MySQL表适合主内存是什么意思?
MySQL表适合主内存是什么意思?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL表适合主内存是什么意思?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1746字,纯文字阅读大概需要3分钟。
内容图文
![MySQL表适合主内存是什么意思?](/upload/InfoBanner/zyjiaocheng/893/630e7a29aa41447a9730b447eace2960.jpg)
在谈论InnoDB表的优化时,我看到这样的短语出现了,但从未解释过:
>这意味着什么
>如何实现它
>决定是否可以完成的条件
并且:
>它带来的好处
解决方法:
从磁盘读取一行所需的时间比从RAM读取同一行的时间长约100,000倍.
请参阅Numbers Everyone Should Know,基于Jeff Dean在2009年的一次有影响力的主题演讲.从RAM读取大约需要100纳秒.磁盘搜索需要大约10,000,000纳秒(当然一些磁盘更快,但其中最好的仍然比RAM慢数千倍).
由于我们通常多次读取数据,因此我们希望避免多次从磁盘读取数据的开销.因此,第一次读取数据将数据复制到RAM,然后后续读取利用RAM的更快性能.
但是RAM是易失性的(当计算机断电时RAM中的数据被擦除),并且每单位存储RAM比磁盘要贵得多.因此,我们通常使用大磁盘(例如1 TB)来存储大量数据,并使用较少量的RAM(数据库服务器上的typically 16-64 GB)来存储最常访问的数据.
大多数情况下,我们可以为大多数读取假设数据库帐户的相对较小的子集.这称为Pareto Principle.因此,即使您的RAM比磁盘小得多,您也可以假设您可以在90%的时间内读取已经在RAM中的数据.
您可以看到它在MySQL中的效果如何:
mysql> SHOW ENGINE INNODB STATUS\G
...
----------------------
BUFFER POOL AND MEMORY
----------------------
...
Buffer pool hit rate 929 / 1000 ...
...
命中率为929/1000表示在1000行读取中,它能够读取RAM中的行929次.剩下的71次必须从磁盘读取数据行.这不是一个糟糕的比例,但如果您经常访问的数据完全适合RAM,您会看到此比率增加到999/1000甚至是1000/1000.
您不一定需要与整个数据库一样多的RAM – 您只需要足够大的RAM来满足大多数查询.当然,确保最后一小部分查询从RAM读取数据会更好.如果我们能够负担1000 GB的RAM,那将是一件好事,但通常以更具成本效益的方式达成妥协.
如果您想了解更多信息,请参阅以下资源:
> https://blogs.oracle.com/mysqlinnodb/entry/data_organization_in_innodb
> http://dev.mysql.com/doc/refman/5.6/en/innodb-buffer-pool.html
> High Performance MySQL, 3rd edition
> Life of a Dirty Page由Mark Callaghan(谷歌和后来的Facebook)发表.
内容总结
以上是互联网集市为您收集整理的MySQL表适合主内存是什么意思?全部内容,希望文章能够帮你解决MySQL表适合主内存是什么意思?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。