优化更新语句

时间:2012-03-04 07:02:30

标签: mysql performance optimization myisam bigtable

我正在使用仅限MyISAM的数据库,并且对大表的更新花费了太多时间。表的大小约为30 GB(MYD和MYI各15 GB)。无论如何,除了查看索引之外,我还能提高速度吗?

3 个答案:

答案 0 :(得分:1)

MyIsam密钥缓存调优: http://docs.oracle.com/cd/E19957-01/mysql-refman-5.4/optimization.html#myisam-key-cache

一般性能优化:(有很多) http://docs.oracle.com/cd/E19957-01/mysql-refman-5.5/optimization.html

30 GB非常大,您运行的是高端服务器吗?

答案 1 :(得分:1)

如果您正在加载大量数据,请查看批量插入命令,甚至根据您的具体情况加载数据infile。

如果您正在进行大量插入操作,则可能需要在插入之前测试禁用密钥。它可能有助于加快速度。

使用

insert into myTable values("rec1","hello"),("rec2","world"),("rec3","cheesy huh");

将在1个语句中插入3条记录 - 再次,您需要对其进行测试。

我已经完成了这种带有数千行的插入形式,并且在我的示例中效果很好。

答案 2 :(得分:0)

可能有趣的一些注意事项:

  • 更改存储引擎(对于高容量表,innodb更好)
  • 将您的表格(或整个数据库)划分为更多逻辑切片(例如按年,月,区域等的数据),因此表格将更多但更小的
  • 确保mysql连接缓冲区大小和类似指标足够快,以便快速交付