我有一個關於Mysql查詢的問題。限制查詢無法生效
我有一些緩慢的查詢。以下是其中之一:
SELECT
xxx_accounts.id
, xxx_accounts.name
, xxx_accounts.account_name
, xxx_accounts.address_postalcode
, xxx_accounts.address_city
, xxx_accounts.address_state
, xxx_accounts.date_modified
, xxx_accounts.assigned_user_id
FROM
xxx_accounts
WHERE
xxx_accounts.deleted = 0
ORDER BY
xxx_accounts.date_entered DESC
LIMIT 4434950, 11;
即使使用限制查詢,也需要將近2分鐘。
解釋是在這裏:
+----+-------------+--------------+------+--------------------------------------------------------------------------------+-------------------------+---------+-------+---------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+--------------+------+--------------------------------------------------------------------------------+-------------------------+---------+-------+---------+-------------+
| 1 | SIMPLE | xxx_accounts | ref | idx_deleted_datemodified,idx_deleted_addresspostalcode,idx_deleted_dateentered | idx_deleted_dateentered | 2 | const | 1861322 | Using where |
+----+-------------+--------------+------+--------------------------------------------------------------------------------+-------------------------+---------+-------+---------+-------------+
解釋這表示,行是總數。
但是,這個SQL更改限制「」查詢,限制1,11「」,它需要幾秒鐘(如1或2秒)。
這些SQL的不同之處在於LIMIT 4434950,11
和之間。
這個問題可以解決嗎?
你怎麼知道,當按日期排序你不感興趣的第一4434950行? – Strawberry
對不起。我無法理解你的問題。請解釋更多細節。 –