如何优化Linux MySQL服务器,以便更快地查询具有多行(最多1个bilion)的表。
服务器仅用于开发,因此安全性,可用性或恢复不是问题。
这是一个例子:
ALTER TABLE link ADD UNIQUE KEY url_index(url(255))
链接表:
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)
my.cnf(http://pastebin.com/vx6BNqrE)
我可以在软件(查询/表格设计和my.cnf或其他服务器配置)方面进行优化,哪些应该是第一个在RAM以外的硬件方面进行升级(遗憾的是RAM不能升级为只有3个内存插槽可用)。
updatead
答案 0 :(得分:1)
您需要开始扩展,而不是在进行微优化,这可能会让您每小时进行一些交易。
首先,获得一个SSD。如果您需要更多空间,请将它们RAID。如果你真的关心性能,那么SSD就很庞大,特别是看你的IO。
其次,一台服务器只能到目前为止。您需要开始设置将释放一些负载的从站,它们也可以作为一个漂亮的故障转移。
MySQL并不是真正针对按需架构更改,因此alter table很难回答;我实际上将服务器停止服务以防止锁定,运行alter table,然后将其与错过的内容同步并跟随其他服务器的套件。你应该选择一个架构并坚持使用它。
祝你好运!