MySQL linux服务器和my.cnf优化了很多行

时间:2013-01-11 01:40:18

标签: mysql linux ubuntu ubuntu-12.10

如何优化Linux MySQL服务器,以便更快地查询具有多行(最多1个bilion)的表。

服务器仅用于开发,因此安全性,可用性或恢复不是问题。

这是一个例子:

ALTER TABLE link ADD UNIQUE KEY url_index(url(255))
  • 持续时间> 6h
  • 链接数(~20 mil)
  • 低CPU使用率(~19%)
  • 高IO(iotop mysql返回大多为600 KB / s读取和500 KB / s写入,99%IO,一些峰值为2-3 MB / s)

链接表:

CREATE TABLE `links` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `url` varchar(2000) NOT NULL,
  `domain` varchar(255) DEFAULT NULL  
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=27765646 DEFAULT CHARSET=utf8;

我有一个专用的linux服务器(ubuntu 12.10)

  • 6 GB RAM
  • 1 TB HDD(非SSD)

my.cnf(http://pastebin.com/vx6BNqrE)

我可以在软件(查询/表格设计和my.cnf或其他服务器配置)方面进行优化,哪些应该是第一个在RAM以外的硬件方面进行升级(遗憾的是RAM不能升级为只有3个内存插槽可用)。

updatead

1 个答案:

答案 0 :(得分:1)

您需要开始扩展,而不是在进行微优化,这可能会让您每小时进行一些交易。

首先,获得一个SSD。如果您需要更多空间,请将它们RAID。如果你真的关心性能,那么SSD就很庞大,特别是看你的IO。

其次,一台服务器只能到目前为止。您需要开始设置将释放一些负载的从站,它们也可以作为一个漂亮的故障转移。

MySQL并不是真正针对按需架构更改,因此alter table很难回答;我实际上将服务器停止服务以防止锁定,运行alter table,然后将其与错过的内容同步并跟随其他服务器的套件。你应该选择一个架构并坚持使用它。

祝你好运!