Vous pouvez effectuer les opérations suivantes:
Étape 01: Faire un tableau des ID
DROP TABLE IF EXISTS lookup_ids;
CREATE TABLE lookup_ids SELECT id FROM `table` WHERE 1=2;
ALTER TABLE lookup_ids ADD PRIMARY KEY (id);
Étape 02: Vous insérez les 500.000 valeurs dans lookup_ids
Étape 03: Faire une bonne index de couverture sur table
ALTER TABLE `table` ADD UNIQUE INDEX id_value_ndx (id,value);
Étape 04: Exécutez e REJOIGNEZ
SELECT t.value FROM `table` t INNER JOIN lookup_ids i USING (id);
ou
SELECT t.value FROM `table` t NATURAL JOIN lookup_ids i;
OPPOSITION: Les étapes 1-3 ne pas besoin d'être répétée, sauf si vous avez un ensemble différent de ids de consultation pour charger
Comment avez-vous les ids 500K ? D'une autre requête? Ou sont-ils dans une liste dans votre code d'application? –
D'où viennent ces 500 000 articles? Si elles proviennent de la base de données, vous pouvez vous joindre à. Difficile d'imaginer un utilisateur qui tape 500 000 valeurs :-) – drdwilcox
A partir d'une liste de données qui n'est pas en MySQL. Je suppose que je pourrais ajouter ces données et faire JOIN. Serait-ce plus rapide? – reefine