행이 300,000개이고 크기가 113.7MB인 데이터베이스 테이블이 있습니다. 8개 코어와 8GB RAM을 갖춘 Ubuntu 13.10에서 데이터베이스를 실행하고 있습니다. 현재로서는 MySQL 서버가 평균 750%의 CPU를 사용합니다. 및 6.5%MEM( top
CLI에서 실행하여 얻은 결과). 또한 Apache2 웹 서버와 동일한 서버에서 실행됩니다.
Mem 라인에서 얻은 내용은 다음과 같습니다.
Mem: 8141292k total, 6938244k used, 1203048k free, 211396k buffers
실행하면 show processlist;
다음과 같은 결과를 얻습니다.
2098812 | admin | localhost | phpb | Query | 12 | Sending data | SELECT * FROM items WHERE thumb = 'Halloween 2013 Horns/thumbs/Halloween 2013 Horns (Original).png'
2098813 | admin | localhost | phpb | Query | 12 | Sending data | SELECT * FROM items WHERE thumb = 'Halloween 2013 Witch Hat/thumbs/Halloween 2013 Witch Hat (Origina
2098814 | admin | localhost | phpb | Query | 12 | Sending data | SELECT * FROM items WHERE thumb = 'Halloween 2013 Blouse/thumbs/Halloween 2013 Blouse (Original).png
2098818 | admin | localhost | phpb | Query | 11 | Sending data | SELECT * FROM items WHERE parent = 210162 OR auto = 210162
일부 쿼리는 실행하는 데 10초가 넘게 걸립니다. 이는 목록의 맨 위가 아니라 중간 어딘가에 이 목록에 얼마나 많은 쿼리가 쌓여 있는지에 대한 관점을 제공하기 위한 것입니다. 내 Query Cash 구성과 관련이 있을 수 있다고 생각합니다. 다음은 실행 시 표시되는 구성입니다.SHOW STATUS LIKE 'Qc%';
+-------------------------+----------+
| Variable_name | Value |
+-------------------------+----------+
| Qcache_free_blocks | 434 |
| Qcache_free_memory | 2037880 |
| Qcache_hits | 62580686 |
| Qcache_inserts | 10865474 |
| Qcache_lowmem_prunes | 4157011 |
| Qcache_not_cached | 3140518 |
| Qcache_queries_in_cache | 1260 |
| Qcache_total_blocks | 4440 |
+-------------------------+----------+
Qcache_lowmem_prunes
조금 높은 것 같던데 , 이게 정상인가요?
StackOverflow를 검색했지만 문제를 해결할 수 있는 항목을 찾을 수 없습니다. 이에 대한 도움을 주시면 대단히 감사하겠습니다. 감사합니다!
답변1
Thumb, 부모 또는 자동 열에 인덱스가 있습니까? 원칙적으로에헴경험상, where 절의 각 열이나 열 그룹에 대한 색인이 있어야 합니다.