450000 행의 뉴스가 가득한 테이블이 있습니다. 테이블 스키마는 다음과 같이이다 :Mysql 인덱스 구성
CREATE TABLE IF NOT EXISTS `news` (
`id` int(11) NOT NULL auto_increment,
`cat_id` int(11) NOT NULL,
`title` tinytext NOT NULL,
`content` text NOT NULL,
`date` int(11) NOT NULL,
`readcount` int(11) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `cat_id` (`cat_id`),
KEY `cat_id_2` (`cat_id`,`id`),
KEY `cat_id_date` (`cat_id`,`date`)
) ENGINE=MyISAM DEFAULT CHARSET=latin5 AUTO_INCREMENT=462679 ;
x가 100 이상이면 내가 카테고리 페이지는 15 초 이상 소요 "X"페이지에 대한 소식을 다음과 같은 SQL 명령을 실행할 때 :
:select * news where cat_id='4' order by id desc limit 150000,10;
내가이 같은 더 간단한 SQL 쿼리를 확인이 질문을 작성하고 또한 분에 가까이 갔다하지만 그것 "여기서"인덱스 "cat_id_2"
를 사용하여 해당 프로그램을 설명
select * from haberler order by id desc limit 40000,10;
는 SQL이 걸리는 일을 다음과 같은 몇 밀리 초 같은 경우 :
select * from haberler order by id desc limit 20,10;
내 my.cnf의 구성은 다음과 같이이다 :
skip-locking
skip-innodb
query_cache_limit=1M
query_cache_size=256M
query_cache_type=1
max_connections=30
interactive_timeout=600000
#wait_timeout=5
#connect_timeout=5
thread_cache_size=384
key_buffer=256M
join_buffer=4M
max_allowed_packet=16M
table_cache=1024
record_buffer=1M
sort_buffer_size=64M
read_buffer_size=16M
max_connect_errors=10
# Try number of CPU's*2 for thread_concurrency
thread_concurrency=2
myisam_sort_buffer_size=128M
long_query_time = 1
log_slow_queries = /var/log/mysql/mysql-slow.log
max_heap_table_size=512M
웹 사이트는 core2duo에서 실행 2GB RAM. 이 문제는 sort_buffer_size에 의해 발생할 수 있다고 생각하지만 확실하지 않습니다. 사전에 감사합니다.
은 또한 당신의 인덱스 수 있을까,이 측면을 조사했다? –
질문에 여러 가지 불일치가 있습니다. 더 명확하게 편집 할 수 있습니까? –
그것은 지금 고쳐야한다, 테이블에 사용 된 이름은 원래 turkish이었다, 나는 그들 중 일부를 영어로 번역하는 것을 잊어 버린 것처럼 보인다. 어쨌든 내 나쁜 영어를 유감스럽게 생각합니다. – intacto