在RAM中运行MySQL

在RAM中运行MySQL,mysql,amazon-ec2,ram,Mysql,Amazon Ec2,Ram,我有一个中等规模的数据库(~7500万行,~300GB),和一台相当强大的机器(amazon r3.8XL,32个CPU,244G RAM)。不幸的是,MySQL似乎没有使用所有这些功能。它几乎不到公羊的十分之一 我对这个数据库的应用是一个python程序,它读取表、处理数字并将结果存储回数据库。只有一个用户,因此不需要表锁 理想情况下,几乎整个数据库都存储在RAM中。我曾考虑安装一个直RAM文件系统,但这意味着必须自己将所有内容卸载回硬盘。我将key_buffer_size和innodb_bu

我有一个中等规模的数据库(~7500万行,~300GB),和一台相当强大的机器(amazon r3.8XL,32个CPU,244G RAM)。不幸的是,MySQL似乎没有使用所有这些功能。它几乎不到公羊的十分之一

我对这个数据库的应用是一个python程序,它读取表、处理数字并将结果存储回数据库。只有一个用户,因此不需要表锁

理想情况下,几乎整个数据库都存储在RAM中。我曾考虑安装一个直RAM文件系统,但这意味着必须自己将所有内容卸载回硬盘。我将key_buffer_size和innodb_buffer_pool_size分别设置为100G,但似乎没有任何效果


是否有明显的遗漏?

当您遇到错误或电源故障时,这似乎是个坏主意。我知道,但这是数据中心的批处理,也是消除IO瓶颈的唯一方法。我愿意冒这个险。你的程序一次是否真的读写了足够的数据,使所有的内存都物有所值?我想,在您投入更多RAM之前,您可能需要改进程序的并行性。我打赌现在的瓶颈不是磁盘。你在Python方面衡量过RAM的使用情况吗?在内存中提取那些大的、可能是宽的数据帧或列表,并对它们进行处理,我想这会显示出一个足迹。Mysql将根据内存设置将数据和索引缓存到RAM中(如果它有空间的话)。但它通常不会直接存储在内存表之外的ram中。在这里很难知道mysql是否是瓶颈,或者它是如何使用python读取/访问数据的。当您遇到错误或电源故障时,这似乎是个坏主意。我知道,但这是数据中心的批处理,也是消除IO瓶颈的唯一方法。我愿意冒这个险。你的程序一次是否真的读写了足够的数据,使所有的内存都物有所值?我想,在您投入更多RAM之前,您可能需要改进程序的并行性。我打赌现在的瓶颈不是磁盘。你在Python方面衡量过RAM的使用情况吗?在内存中提取那些大的、可能是宽的数据帧或列表,并对它们进行处理,我想这会显示出一个足迹。Mysql将根据内存设置将数据和索引缓存到RAM中(如果它有空间的话)。但它通常不会直接存储在内存表之外的ram中。在这里很难知道mysql是不是瓶颈,或者它是如何使用python读取/访问数据的。