gpt4 book ai didi

mysql - 将 RAM 分配给 MySQL 数据库中的特定表

转载 作者:可可西里 更新时间:2023-11-01 08:37:19 27 4
gpt4 key购买 nike

有什么方法可以强制 MySQL 将特定表存储在 RAM 中(除了使用内存存储引擎)?

我的数据库包含超过 200 GB 的 InnoDB 表(我不想将其存储在 RAM 中)和 10 个使用 MyISAM 引擎的表(~100 MB)。

我的目标是尽可能快地访问 MyISAM 表(如有必要,我可以更改 MyISAM 表的存储引擎或将它们移动到同一服务器上的另一个数据库)。

我的数据库服务器运行的是 Linux 并且有 10 GB RAM。

最佳答案

假设如下:

  • 数据目录是/var/lib/mysql
  • 你的数据库叫做mydb
  • 你在 mydb 中有 MyISAM 表 t1、t2 和 t3
  • 您想创建一个名为memorydb的内存数据库

您可以执行以下操作:

  • 步骤 01) service mysql stop
  • 第 02 步)创建 RAM 磁盘
  • 步骤 03) mkdir/var/lib/mysql/memorydb
  • 步骤 04) chown mysql:mysql/var/lib/mysql/memorydb
  • 步骤 05) 将 RAM 磁盘挂载到 /var/lib/mysql/memorydb
  • 步骤 06) 服务 mysql 启动
  • 步骤 07) mysql> ALTER TABLE mydb.t1 RENAME memorydb.t1;
  • 步骤 08) mysql> ALTER TABLE mydb.t2 RENAME memorydb.t2;
  • 步骤 09) mysql> ALTER TABLE mydb.t3 RENAME memorydb.t3;

在第6步之后,应该在information_schema.schemata中注册了memorydb

如果要在 mydb 中保留表的副本,请在步骤 6 之后执行以下操作

  • 步骤 07) mysql> 创建表 memorydb.t1 LIKE mydb.t1;
  • 步骤 08) mysql> INSERT INTO memorydb.t1 SELECT * FROM mydb.t1;
  • 步骤 09) mysql> 创建表 memorydb.t2 LIKE mydb.t2;
  • 步骤 10) mysql> INSERT INTO memorydb.t2 SELECT * FROM mydb.t2;
  • 步骤 11) mysql> 创建表 memorydb.t3 LIKE mydb.t3;
  • 步骤 12) mysql> INSERT INTO memorydb.t3 SELECT * FROM mydb.t3;

只需确保您有足够的 RAM 来容纳您的 MyISAM 表。

试一试!!!

关于mysql - 将 RAM 分配给 MySQL 数据库中的特定表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8749643/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com