【问题标题】:Run SQL query on MySQL service startup在 MySQL 服务启动时运行 SQL 查询
【发布时间】:2014-12-22 22:56:12
【问题描述】:

我已经在 mysql 上创建了 HEAP (ram) 表以加快查询速度。但是mysql服务器重启后,我的堆表中的数据没有加载。

我的普通表名:products,id、product_name、状态为 myisam

id =>整数和auto_increment,主键

product_name => var_char 和 key(index)

状态 => 布尔值

实际查询:

`Select id from products where product_name like "product_name"`

我想提高速度,所以我创建了具有相同结构并命名为 products_ram 的表作为 mysql HEAP 表。 我正在使用此代码进行填充:

insert p_shop.products_ram select * from p_shop.products;

但是当重启mysql实例的时候HEAP(ram)表数据已经没有了。

我找到了一篇关于mysql内存存储的文档: http://dev.mysql.com/doc/refman/5.0/en/memory-storage-engine.html

但我找不到我要找的东西。

我想在mysql服务器初始化时自动将我的数据从products表插入/复制到products_ram表中。

任何帮助将不胜感激。

编辑:我的操作系统:Windows Server 2008 R2 和 Mysql:MySQL 5.5

【问题讨论】:

  • 如果您告诉了这是什么操作系统,那么我们可能会知道您的 mysqld 实例是如何启动的。
  • Windows Server 2008 R2 上的 Mysql 5.5

标签: mysql sql insert in-memory-tables


【解决方案1】:

init_file 服务器选项允许您定义要在启动时执行的任意 SQL 语句。


编辑:随着资源在目标站点上移动,更改了链接。

【讨论】:

  • 是的,my.ini 文件位于C:\Program Files\MySQL\MySQL Server 5.1\my.ini,我在[mysqld] init-file="C:/inetpub/wwwroot/start.sql" 下添加了这一行,它可以工作!谢谢。
  • 因为我也在 Windows 机器上运行,所以我必须知道文件中给出的路径必须用 正斜杠 而不是反斜杠编写。
  • MySQL 8.0 的更新链接:dev.mysql.com/doc/refman/8.0/en/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 2022-01-25
  • 2015-06-08
  • 2022-01-20
  • 2011-07-15
  • 1970-01-01
  • 2021-05-17
相关资源
最近更新 更多