MySQL-如何确定我的表是否存储在RAM中?

MySQL-如何确定我的表是否存储在RAM中?,mysql,database,database-design,memory,innodb,Mysql,Database,Database Design,Memory,Innodb,我在跑步: MySQL v5.0.67 InnoDB engine innodb_buffer_pool_size = 70MB 问题:我可以运行什么命令来确保我的整个50 MB数据库完全存储在RAM中?我很好奇为什么要将整个表存储在内存中。我猜你不是对我来说,最重要的是您的查询是否运行良好,以及是否占用了磁盘访问空间。如果内存可用,操作系统也可能缓存了所需的磁盘块。在这种情况下,即使MySQL可能没有内存,操作系统也会。如果您的查询运行得不好,并且您可以做到这一点,我强烈建议您在RAM

我在跑步:

MySQL v5.0.67 
InnoDB engine 
innodb_buffer_pool_size = 70MB 

问题:我可以运行什么命令来确保我的整个50 MB数据库完全存储在RAM中?

我很好奇为什么要将整个表存储在内存中。我猜你不是对我来说,最重要的是您的查询是否运行良好,以及是否占用了磁盘访问空间。如果内存可用,操作系统也可能缓存了所需的磁盘块。在这种情况下,即使MySQL可能没有内存,操作系统也会。如果您的查询运行得不好,并且您可以做到这一点,我强烈建议您在RAM中添加更多内存。如果你的速度变慢了,你更有可能会遇到竞争

show table status
我将向您展示一些信息

如果从中获取服务器IO/缓冲区/缓存统计信息

show server status
然后运行一个需要访问每一行的查询(例如,使用一个没有索引的列对每一行的非空值求和),并检查是否发生了IO


我怀疑你是在用70MB的内存缓存整个东西。您必须从总数中取出大量缓存、临时和索引缓冲区。

如果您从表中运行
选择COUNT(*)USE index(PRIMARY)
,则InnoDB将把主索引的每一页放入缓冲池(假设其中有足够的空间)。如果表有二级索引,并且您也希望将它们加载到缓冲池中,那么创建一个类似的查询,从二级索引中读取数据并执行此任务。

我不认为“使用
内存
引擎”是一个可接受的答案?我不使用内存引擎,因为如果服务器崩溃,我不想丢失我所有的数据。因此,我使用INNODB,其RAM值大小大于我的数据集。(尽管是个好问题)