Ich habe eine Frage zu einer Mysql-Abfrage.Limit-Abfrage kann nicht wirksam sein
Ich habe einige langsame Abfragen. Hier ist einer von ihnen:
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;
Es dauert fast 2 Minuten, auch wenn es Limit-Abfrage verwenden. Erklären
ist hier:
+----+-------------+--------------+------+--------------------------------------------------------------------------------+-------------------------+---------+-------+---------+-------------+
| 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 |
+----+-------------+--------------+------+--------------------------------------------------------------------------------+-------------------------+---------+-------+---------+-------------+
Dies sagte zu erklären, dass Zeilen Gesamtzahl ist.
Allerdings ist diese SQL geändert Grenze "" Abfrage, LIMIT 1,11 ", es dauert ein paar Sekunden (wie 1 oder 2 Sekunden). Der Unterschied dieser SQL liegt zwischen LIMIT 4434950,11
und LIMIT 1,11
.
Kann dieses Problem irgendwie gelöst werden?
Wie wissen Sie, dass Sie in den ersten 4.434.950 Zeilen nicht interessiert sind, wenn sie von Datum geordnet? – Strawberry
Es tut mir leid. Ich kann Ihre Frage nicht verstehen. Bitte erklären Sie mehr Details. –