J'ai un fichier qui passe par un grand ensemble de données et divise les lignes d'une manière paginée. L'ensemble de données contient environ 210k lignes, ce qui n'est même pas beaucoup, il passera à 3Mil + dans quelques semaines, mais c'est déjà lent.Obtenir le nombre total d'enregistrements de la table mysql - trop lent
J'ai une première requête qui obtient le nombre total d'articles dans la base de données pour un particulier où la combinaison de la clause, le plus basique ressemble à ceci:
SELECT count(v_id) as num_items FROM versions
WHERE v_status = 1
Il faut 0,9 secondes pour exécuter.
La 2ème requête est une requête LIMIT qui obtient les données réelles pour cette page. Cette requête est vraiment rapide. (moins de 0,001 s).
SELECT
v_id,
v_title,
v_desc
FROM versions
WHERE v_status = 1
ORDER BY v_dateadded DESC
LIMIT 0, 25
Il y a un index sur v_status, v_dateadded
J'utilise php. Je cache le résultat dans memcace, donc les requêtes suivantes sont vraiment rapides, mais la première requête est laggy. Surtout quand je lance une recherche en texte intégral, cela commence à prendre 2-3 secondes pour les 2 requêtes.
Pouvez-vous nous montrer la sortie des versions «DESCRIBE versions» ou «SHOW CREATE TABLE» s'il vous plaît? – Charles
Est-ce que 'SELECT COUNT (*) ...' est plus rapide? –
... aussi - y a-t-il un index sur 'v_status'? –