2017-05-22 3 views
0

테이블에 5000 레코드가 있습니다. 500 레코드를 선택하는 테이블 (30 개 열)을 쿼리 할 때 30초초입니다. MySQL에서 데이터를 가져 오는 시간을 어떻게 줄일 수 있습니까? 나는 primary key을 포함하여 테이블에 3 주 정수형 열을 인덱싱하고있었습니다. 다른 해결 방법이 있습니까?mysql 성능을 향상 시키십시오.

샘플 쿼리 : select * from my_table where my_condition LIMIT 500

+0

"my_condition"및 테이블 정의도 지정해야합니다. 5000 행의 작은 테이블의 경우 쿼리를 실행하는 데 많은 시간이 걸리지 않아야합니다. 나는 당신이 새로운 색인이 필요하다고 생각 하겠지만 당신이 당신의 상태에서 무엇을 검색하고 테이블이 어떻게 보이는지를 알지 못한다면 말하기는 어렵습니다. 우리는 더 많은 정보가 필요합니다 .. – MrApnea

+0

조건은 단순한 것입니다 : ** id! = "this"AND another_id = "this"** 곧 모든 열과 유형을 게시합니다. – Crazyrubixfan

+0

이것이 많은 시간이 걸리는 경우 두 열에 모두 조합 된 색인을 사용하여 시간에 변화가 있는지 확인하십시오. 여러 개의 열이있는 색인에 대한 자세한 정보는 https://stackoverflow.com/questions/12728832/understanding-multiple-column-indexes-in-mysql-query – MrApnea

답변

1

5000 기록이있는 테이블의 쿼리는 메모리의 당신에게 DB를 굶어 또는 매우 느린 디스크를함으로써 당신이해야 30 초 촬영합니다. 색인 생성이 도움이되지만 느린 디스크가없고 메모리가없는 경우에만 도움이됩니다.

+0

특히'SHOW VARIABLES LIKE '% buffer %'; ' –

+0

메모리가 문제 일 가능성이 높습니다. 확인하고 업데이트를 게시하십시오. – Crazyrubixfan

관련 문제