MySQL linux服务器和my.cnf对多行的优化

MySQL linux服务器和my.cnf对多行的优化,mysql,linux,ubuntu,ubuntu-12.10,Mysql,Linux,Ubuntu,Ubuntu 12.10,如何优化LinuxMySQL服务器,以便更快地查询具有多行的表(最多1兆) 服务器仅用于开发,因此安全性、可用性或恢复不是问题 以下是一个例子: ALTER TABLE link ADD UNIQUE KEY url_index(url(255)) 持续时间>6小时 链路数(约20 mil) cpu使用率低(~19%) 高IO(iotop mysql的读写速度大多为600 KB/s,写操作速度为500 KB/s,99%的IO,有些峰值为2-3 MB/s) 链接表: CREATE TABLE

如何优化LinuxMySQL服务器,以便更快地查询具有多行的表(最多1兆)

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

以下是一个例子:

ALTER TABLE link ADD UNIQUE KEY url_index(url(255))
  • 持续时间>6小时
  • 链路数(约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)

  • 6GB内存
  • 1 TB硬盘驱动器(非SSD)
(http://pastebin.com/vx6BNqrE)

在软件方面我可以优化什么(查询/表设计和my.cnf或其他服务器配置),在RAM以外的硬件方面应该首先升级什么(不幸的是,RAM不可升级,因为只有3个RAM插槽可用)


updatead

您需要开始扩展,而不是在进行微优化(可能会在一小时内增加几笔交易)时四处游荡

首先,得到一个SSD。如果需要更多空间,请对其进行RAID。如果你真的关心性能,SSD是巨大的,尤其是在你的IO上

其次,一台服务器只能做到这一点。您需要开始设置从机,以减轻一些负载,它们还可以作为一个漂亮的故障转移

MySQL并不是为按需模式更改而设计的,所以alter table很难回答;实际上,我会让服务器停止服务以防止锁定,运行alter表,然后将其与丢失的内容同步,然后将suite与其他服务器同步。你真的应该选择一个模式并坚持下去


祝你好运

谢谢,你知道为初学者准备的关于设置集群的好教程吗?只是为了让你不感到困惑,这不是一个集群——这是一个完全不同的东西。这里有一个很好的指南:不幸的是,据我所知,这只会给我带来与raid相同的高可用性,更快的读取速度,但据我所知,它不会给我更好的写入速度,正如我所说:“服务器只用于开发,所以安全性、可用性或恢复不是问题。”@clickstefan高可用性只是一个额外的好处,正如我在回答中指出的那样。