리눅스의 MySQL 서버를 최적화하여 행 수가 많은 (최대 1 억) 테이블을 빠르게 쿼리하는 방법.많은 행에 대한 MySQL의 linux 서버 및 my.cnf 최적화
서버는 개발에만 사용되므로 보안, 가용성 또는 복구는 문제가되지 않습니다.
ALTER TABLE link ADD UNIQUE KEY url_index(url(255))
- 시간> 6 시간 : 여기 은 예입니다 대부분 600 KB/s를 읽음 & 일부 스파이크를 사용하여 99 % IO로 쓰고 500KB/s 쓰기, 2-3MB/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;
나는 전용 리눅스 서버를 (우분투 12.10)
- 6기가바이트 RAM 의
- 1 TB의 HDD (비 SSD)
my.cnf (http://pastebin.com/vx6BNqrE)
무엇을 최적화 할 수 있습니까? (쿼리/테이블 디자인 및 my.cnf 또는 기타 서버 구성) 및 RAM 이외의 하드웨어 측면에서 업그레이드해야하는 것은 무엇입니까? (불행히도 RAM 슬롯은 3 개만 사용할 수 있으므로 업그레이드 할 수 없습니다).
updatead
감사합니다. 클러스터 설정에 대한 초보자 용 튜토리얼을 알고 계십니까? –
그냥 혼동하지 마라. 이것은 클러스터가 아니다 - 그것은 완전히 다른 것이다. 여기에 좋은 가이드가 있습니다 : http://www.howtoforge.com/mysql_master_master_replication – Jonathan
불행히도 이것은 제가 습득 한 것과 같은 고 가용성, 빠른 읽기를 제공 할 것임을 이해하지만 그것은 내가 더 잘 이해하지 못하는 것으로 이해합니다. "서버는 개발에만 사용되므로 보안, 가용성 또는 복구는 문제가되지 않습니다." –