MySQL Statement Execution Time Excessive
While attempting to execute queries on a large database containing approximately 1 million records, prolonged execution times were encountered. Specifically, a query fetching records from the "ratings" table was particularly slow:
select * from `ratings` order by id limit 499500, 500
Despite employing an index on the "id" column, the problem persisted. However, reducing the table size to 10,000 records resulted in significantly faster query times.
Explanation:
Upon examining the query plan using the "EXPLAIN" statement, it was revealed that the original query was using a full table scan, leading to inefficient execution. In contrast, when a "where" clause was added, a more efficient range index scan was utilized, dramatically improving performance.
select * from `ratings` where id>=499501 limit 500
Considerations:
Using a "where" clause to filter the results can significantly improve query performance by utilizing appropriate indexes.
It is essential to ascertain that no deadlocks are occurring within the database, which can also lead to sluggish query execution.
The above is the detailed content of Why is My MySQL Query So Slow, Even with an Index?. For more information, please follow other related articles on the PHP Chinese website!