>  기사  >  데이터 베이스  >  MySQL 최적화 요약 - 총 쿼리 수

MySQL 최적화 요약 - 총 쿼리 수

小云云
小云云원래의
2017-12-08 11:38:002887검색

이 기사에서는 주로 MySQL 최적화 요약(총 쿼리 수)을 소개합니다. 기사에서는 특정 참고 가치가 있는 간단한 테스트와 비교를 수행합니다. 필요한 친구가 이에 대해 배울 수 있기를 바랍니다.

1, COUNT(*) 및 COUNT(COL)

COUNT(*)는 일반적으로 기본 키에 대해 인덱스 스캔을 수행하지만 COUNT(COL)는 반드시 그렇지는 않습니다. 또한 전자가 모두 일치합니다. 통계표의 항목 총 레코드 수, 즉 COL과 일치하는 계산 테이블의 레코드 수입니다. 차이점이 있습니다.
MyISAM 테이블에 대한 최적화 요약:

1. SELECT COUNT(*) FROM tablename은 어떤 상황에서도 최선의 선택입니다.

2 SELECT COUNT(*) FROM tablename WHERE COL = '값' 종류의 쿼리를 최소화하세요. ;

3. SELECT COUNT(COL) FROM tablename WHERE COL2 ='value' 발생을 방지합니다.

2. COUNT(*) 또는 COUNT(id)

내 이해에 따르면 COUNT(id)를 사용하는 것이 더 빠릅니다. 왜냐하면 내 ID가 자동 증가 기본 키인 경우 이를 계산하기 때문입니다. 수량은 모든 필드의 수량을 계산하는 것보다 확실히 리소스 집약도가 낮습니다. 그러나 mysql 쿼리 가속을 안내하는 것과 유사한 기사를 두 개 이상 본 적이 있습니다. 그들은 모두 직접 COUNT 기본 키 대신 SELECT COUNT(*)를 사용하도록 권장합니다.

MyISAM 엔진을 사용하여 총 항목 수를 테이블에 저장하는 것 같습니다. WHERE가 없거나 WHERE가 항상 true인 경우(예: WHERE 1) COUNT(*)는 총 항목 수를 직접 반환할 수 있습니다. 항목.

또한 분명히 COUNT(*)는 "모든 필드를 계산"하지 않습니다. 분명히 MySQL은 *를 "데이터 조각"으로 구문 분석합니다.

테스트 데이터, 단순 비교, 더 이상 심층 테스트 없음:


#0.817-一百万条的查询时间
select count(*) from student ;
#0.789-一百万条的查询时间
select count(id) from student;
#1.011-一百万条的查询时间
select count(name) from student;
#1.162-一百万条的查询时间
SELECT COUNT(*) FROM student WHERE namelike '%xiaoli%';#默认用主键索引查询,但是加上like条件后索引失效

일반적으로 COUNT(id)를 사용하는 것이 더 빠르므로 참고용으로 간단히 비교하세요.

관련 권장 사항:

mysql 최적화를 위한 IN을 INNER JOIN으로 공유하는 예

일반적으로 사용되는 mysql 최적화 방법 요약

일반적으로 사용되는 mysql 최적화 sql 문 쿼리 방법 요약

위 내용은 MySQL 최적화 요약 - 총 쿼리 수의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.