반응형
innodb를 사용하는 테이블이 있습니다. 테이블에 대략 8 천 9 백만 개의 행이 있다는 것을 알고 있습니다. 사용
SELECT COUNT(*) FROM table;
실행하는 데 약 5 분이 걸립니다. innodb가 무조건 COUNT (*) 쿼리에 최적화되어 있지 않다는 것을 알고 있습니다. 수를 더 빨리 제공하기 위해 쿼리를 재구성하려면 어떻게해야합니까? WHERE 1 = 1 작업을 추가하는 것뿐입니까, 아니면 특정 필드를 쿼리해야합니까?
SHOW TABLE STATUS를 사용하여 대략적인 행 수를 얻을 수 있다는 것을 알고 있지만 PHP 스크립트에서 값을 얻고 싶습니다.
해결 방법
예상 수치에 문제가없고 PHP에서 SHOW TABLE STATUS
를 실행하는 것을 엉망으로 만들고 싶지 않다면 information_schema DB를 사용할 수 있습니다.
SELECT TABLE_ROWS FROM information_schema.tables
WHERE TABLE_SCHEMA = 'my_db_name'
AND TABLE_NAME = 'my_table_name';
참조 페이지 https://stackoverflow.com/questions/5120075
반응형
'MySql' 카테고리의 다른 글
MySQL "SELECT COUNT (*)"는 where 절에서도 느립니다. (0) | 2020.10.17 |
---|---|
MySQL mysql에서 float 유형을 올바르게 사용하는 방법은 무엇입니까? (0) | 2020.10.17 |
MySQL 이 "MySQL 오류 # 1054-알 수없는 열"오류의 원인은 무엇입니까? (0) | 2020.10.17 |
MySQL에서 STRAIGHT_JOIN을 사용하는 경우 (0) | 2020.10.16 |
MySQL Inner Join With LIMIT to left table (0) | 2020.10.16 |
댓글