또한 10개의 데이터를 가져오는
select * from yanxue8_visitlimit 10000,10
과
select * from yanxue8_visitlimit0,10
의 수량이 같은 수준이 아닙니다.
또한 인터넷 제한에 대한 5가지 최적화 지침이 많이 있는데, 모두 MySQL 매뉴얼에서 번역된 것입니다. 비록 정확하지만 실용적이지는 않습니다. 오늘 한도 최적화에 관한 기사를 발견했는데 매우 좋습니다. 원본 주소: http://www.zhenhua.org/article.asp?id=200
Limit을 직접 사용하는 대신 기사에서는 먼저 오프셋 ID를 얻은 다음 Limit 크기를 직접 사용하여 데이터를 얻습니다. 그의 데이터에 따르면, Limit을 직접 사용하는 것보다 분명히 더 좋습니다. 여기서는 특히 두 가지 상황에서 테스트하기 위해 데이터를 사용합니다. (테스트 환경 win2033 p4 듀얼 코어(3GHZ) 4G 메모리 mysql 5.0.19)
1. 오프셋이 상대적으로 작은 경우.
yanxue8_visit 제한 10,10에서 * 선택
여러 번 실행하면 시간은 0.0004-0.0005 사이로 유지됩니다.
Select * From yanxue8_visit Where vid >=(
yanxue8_visit에서 vid 선택 vid 제한 10으로 주문 ,1
) Limit 10
여러 번 실행한 후에도 시간은 0.0005-0.0006 사이에 유지되며 주로 0.0006
결론: 오프셋 오프셋이 작은 경우 Limit를 직접 사용하는 것이 좋습니다. 이것이 분명히 하위 쿼리의 이유입니다.
2. 오프셋이 큰 경우.
yanxue8_visit 제한 10000,10에서 * 선택
여러 번 실행하면 시간은 약 0.0187로 남습니다.
Select * From yanxue8_visit Where vid >=(
Select vid From yanxue8_visit 주문 vid 제한 10000으로 ,1
) 제한 10
여러 번 실행하면 시간은 이전의 1/3에 불과한 약 0.0061로 유지됩니다. 오프셋이 클수록 후자가 더 좋을 것으로 예상할 수 있습니다.
위 내용은 lunalimited의 내용을 포함하여 lunalimitedphp에서 MYSQL 제한의 최적화를 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.