当前位置: 首页 > 面试题库 >

如何使MySQL数据库完全在内存中运行?

裴兴言
2023-03-14
问题内容

我注意到我的数据库服务器支持内存数据库引擎。我想创建一个数据库,我已经使InnoDB在内存中完全运行以提高性能。

我怎么做?我浏览了PHPMyAdmin,但找不到“更改引擎”功能。


问题答案:

假设您了解注释和此处提到的使用MEMORY引擎的后果,以及通过搜索可以找到的其他一些后果(无事务安全性,锁定问题等)-您可以按照以下步骤进行操作:

MEMORY表的存储方式与InnoDB的存储方式不同,因此您需要使用导出/导入策略。首先使用将每个表分别转储到文件中SELECT * FROM tablename INTO OUTFILE 'table_filename'。创建MEMORY数据库,并使用以下语法重新创建要使用的表CREATE TABLE tablename (...) ENGINE = MEMORY;。然后,您可以LOAD DATA INFILE 'table_filename' INTO TABLE tablename为每个表使用导入数据。



 类似资料:
  • 我正在为我工作的一家公司申请工作。我有它来防止SQL注入和一些XSS技术。我的主要问题是保护敏感信息的安全,比如SSN和地址,因为公司需要它来为推销员制作1099表格。 我不知道如何做这部分,但是我应该加密所有内容,然后在它进入MySQL数据库时对其进行解密吗?

  • 问题内容: 我的Django单元测试需要很长时间才能运行,因此我正在寻找加快速度的方法。我正在考虑安装SSD,但我也知道它也有缺点。当然,我的代码可以做一些事情,但是我正在寻找结构上的修复方法。由于每次都需要重建/向南迁移数据库,因此即使运行单个测试也很慢。所以这是我的主意 由于我知道测试数据库总是很小,所以为什么不能仅将系统配置为始终将整个测试数据库保留在RAM中?绝对不要触摸磁盘。如何在Dja

  • 问题内容: 使用Java 对象,最简单的方法是将它们存储为MySql 对象(在UTC中)。切换到这种方法将不再起作用,因为MySQL 无法提供存储纳秒的精度。仅将它们截断可能会导致新创建的对象与从数据库读取的对象之间的意外比较结果。 时间戳不适合我作为一个优雅的解决方案:手动编写选择查询变得更加困难,因为必须将时间戳转换到任何地方以使其可读,并且与值甚至值相比,Java的处理有些笨拙。 去这里最好

  • 问题内容: 我正在尝试编写一个页面,该页面调用存储在MySQL数据库中的PHP。存储在MySQL数据库中的页面包含要在页面加载时运行的PHP(和HTML)代码。 我该怎么做呢? 问题答案: 您可以为此使用eval命令。 不过,我还是建议不要这样做,因为使用这种方法存在很多陷阱。 调试比较困难,这意味着一些安全隐患(执行数据库中的不良内容,呵呵)。 请参阅何时在php中使用eval邪恶?例如。Goo

  • 问题内容: 我想将应用程序的版本号存储在MySQL数据库中,例如: 我应该使用哪种数据类型。 问题答案: 您有2个选择: 使用varchar 使用三个数字字段,主要,次要,补丁 同时使用。 每个选项都有其优点和缺点。 选项1只是一个字段,因此很容易获得版本。但这不一定是可排序的,因为从字典上讲2.0.0将高于10.0.0。 选项2可以很容易地进行排序,但是您必须获得三个字段。 选项3可以使用以下视

  • 1366字符串值不正确:“\XF0\X9F\X98\X83\XF0\X9F..."第1行的“comment”列