
为了运行大量与数据库交互的testing,我想做两件事情:
我想复制数据库的架构而不复制其数据。 我可以用一个脚本来抓取数据库中每个表的CREATE table语句。
在创build这个数据库时,我想强制它在内存中是100%。
我被困在如何做第2部分 – 是否有一个更简单的方法来做到这一点,而不是指定每个表的引擎? 不知何故,这似乎是一个糟糕的做法。
如何导入多个转储文件到windows中的MysqL?
检测在Java中读取的文件
如何优化大内存数据库的分页
Postgresql – FATAL:用户“myuser”的身份valIDation失败
项目使用两个不同版本的sql Server
C中的问题 – 如何擦除数据库结构中的数组
用PHP连接到sql Server数据库
在unix中运行sqlplus后台
如果数据库最终依赖于 *** 作系统,数据库如何保证持久性?
MysqL – ODBC连接失败,Workbench连接工作
在/dev/shm (ubuntu | debian)中创建数据库,它将在RAM中。 它可以增长到0.5的可用内存。
正如dtmilano所说,你可以把它放在一个tmpfs挂载的文件系统上。 它不一定是/ dev / shm,但这是tmpfs通常安装的地方。
你可以在任何地方创建一个新的:
mount none -t tmpfs /path/to/dir
如果它填满所有可用的RAM,它将使用交换作为备份。
把它放在/ etc / fstab在启动时重新挂载。 只要记住,这是一个RAM磁盘,所以每次重新启动时它都是空的。 请参阅: http : //www.howtoforge.com/storing-files-directorIEs-in-memory-with-tmpfs
或者,如yuxhuang所建议的,您可以创建一个MEMORY类型的表。 它也清空重新启动,虽然表定义依然存在。 但是, MEMORY表类型有一些限制。 例如,它使用固定大小的行,所以不允许使用text和blob列, varchar也不是可变长度。 请参阅: http : //dev.MysqL.com/doc/refman/5.0/en/memory-storage-engine.HTML
SET storage_engine=MEMORY;
这将设置当前会话的默认存储引擎。
如果您使用的是windows,那么可以在数据库创建脚本中创建添加MEMORY参数的表,如下所示:
CREATE table IF NOT EXISTS `user` ( `ID` varchar(23) NOT NulL,`username` varchar(250) NOT NulL,... ) ENGINE=MEMORY DEFAulT CHARSET=utf8;
总结以上是内存溢出为你收集整理的强制整个MySQL数据库在内存中全部内容,希望文章能够帮你解决强制整个MySQL数据库在内存中所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)