mysql - 如何加快存储过程中的迭代插入过程?

标签 mysql indexing mmap mysql-proxy

我正在尝试执行一个在循环中多次调用“INSERT”命令的存储过程。 我想加快插入过程并为此尝试使用“RAM DISK”。 请告诉我在 MySql 中处理此类问题的方法。

我在windows 32位环境

最佳答案

我有一个 ram 磁盘方法可以帮助 您可以为 MySQL 创建一个插件,它将您的数据转储到一个 ram 磁盘文件中,您的存储过程可以使用这个 ram 磁盘文件进行查询操作。

  1. 创建具有以下功能的 MySQL 插件。

    • 插件应该有关于 ramdisk 文件的信息或者硬编码 或者通过配置文件读取。
    • 插件应该有接口(interface)来获取数据并将其存储在 ram 磁盘文件中。
    • 插件应该能够返回 ram-disk 文件的路径。
  2. 停止 MySQL 服务器,将插件二进制文件复制到 mysql 上的插件文件夹中,然后重新启动 MySQL 服务器。

  3. 在 MySQL 中创建函数以公开插件 API。

    创建函数 add_info_to_ramdisk RETURNS int SONAME 'yourPluginName.dll'; 创建函数 get_ramdisk_filename 返回字符串 SONAME 'yourPluginName.dll';

  4. 更新您的存储过程以使用插件 API 并在 ram 磁盘文件中填充数据。

  5. 利用 ramdisk 文件来加速您的查询性能。

如果这对您有帮助,请告诉我。

关于mysql - 如何加快存储过程中的迭代插入过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27539483/

相关文章:

php - 技能依赖的Mysql技术

MySQL - 使用正则表达式排除 group_concat

Excel:查找所有匹配值并将其放入逗号分隔列表中?

indexing - 第一个参数索引

python - 在 python 中使用 mmap

php - MySQL行在删除时不会更新

mysql - 表达式中的 REPLACE 和 IF 会导致上一行的串联

facebook - 使用 Nutch 2.1 获取某个页面的 facebook 点赞数

linux - mmap:在用户空间中映射一个用 kmalloc 分配的内核缓冲区

linux - 丢弃脏的写时复制页面