2011-09-27 39 views
1

我是新来的大型数据库,我有以下几点:我应该更改大型表加入和更新的MySQL my.ini参数?

  • 表A - 20M行
  • 表B - 500K行

而且很多疑问,特别是以下,永远走。

UPDATE 
    TableA AS A 
INNER JOIN 
    TableB AS B 
    ON B.Value IS NOT NULL AND A.Key=B.Key  
SET 
    A.Value = B.Value 
WHERE 
    A.Value IS NULL; 

我知道我的MySQL(MyISAM数据)未配置对于大型表,我敢肯定,它可以使用更多的可用内存(4GB总)或CPU(I7)的。我应该查看my.ini中的哪些参数?

我已经开始使用key_buffer_size = 1536M,因为tableA有一个1GB的索引。任何帮助表示赞赏。

回答

1

对于InnoDB

  • innodb_buffer_pool_size设置为约内存80%,您希望可mysql的
  • innodb_log_file_size * innodb_log_files_in_group应足够大的更改将被写入到磁盘不超过一次,第二

但更容易使用配置向导https://tools.percona.com/wizard