MySQL 프로세스는 100% 이상의 CPU 사용을 사용하며 약 1GB의 메모리가 필요합니다.

StackOverflow https://stackoverflow.com/questions/1692756

문제

다음 사양이있는 서버에서 MySQL 서버를 실행 중입니다.

듀얼 Xeon Quad Core 2.0, 2048 MB RAM, 1X 160 GB SATA FEDORA CORE + SSH

그러나 10000 레코드를 삽입하기위한 MySQL 프로세스는 CPU의 100% 이상과 최대 1GB의 RAM이 필요합니다. 일반 삽입 문입니다.

MySQL이 왜 그렇게 많은 메모리를 취하고 있고 그것에 대해 무엇을 할 수 있습니까?.

도움이 되었습니까?

해결책

쿼리에서 가장 큰 부분은 선택입니다.

Select FirstName, LastName, CountryID, Address, Phone
From Test2.Customer
Where UserID Between 1 and 5000
and CustomerID in (Select CustId from Cust_Details Where CustName like 'Mi%')

중첩 쿼리는 아마도 각 행에 대해 반복 될 수 있습니다. 이 실행을 확인할 수 있습니다 EXPLAIN PLAN + 모든 선택 쿼리. '좋아요'연산자가 비 인덱스 열에 사용 된 것 같아요. 이 경우 (like 'xyz%') 간단한 색인은 성능을 많이 향상시킬 수 있습니다.

추가 : 또한 Custid를 선택하십시오 ... 5000보다 큰 ID를 전혀 필요하지 않습니다. cust_details의 복합 색인 (custid, custname)도 유용해야합니다.

대신 가입을 사용해보십시오.

Select FirstName, LastName, CountryID, Address, Phone
From Test2.Customer c, Cust_Details cd
Where c.UserID Between 1 and 5000
and c.CustomerID=cd.CustId
and left(cd.CustName) = 'Mi'
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top