Czy są jakieś skalowalne sposoby wybierania tysięcy wierszy za pomocą mysql IN lub coś podobnego?Najbardziej efektywny sposób wybierania tysięcy wierszy z listy identyfikatorów
E.g.
SELECT * FROM awesomeTable WHERE id IN (1,2,3,4......100000)
Czy to możliwe, czy tylko śnię? Schemat to InnoDB, można go zmienić, jeśli inny zapewnia bardziej skalowalne rozwiązanie.
W celach informacyjnych otrzymuję wyniki wyszukiwania z zestawu identyfikatorów zwracanych przez Solr. Chciałbym użyć mysql do ostatecznego wyszukiwania, ponieważ znacznie ułatwiłoby to sortowanie i końcowe filtrowanie wyników (nie będę rozumiał dlaczego).
Edycja:
Zapytanie może być użyty klauzuli ograniczyć, tak długo, jak długo w nadal zawierały wszystkie 100000 identyfikatorów
Np
SELECT * FROM awesomeTable WHERE id IN (1,2,3,4......100000) LIMIT 10;
lepiej użyć sortowania Solr, jeśli chcesz osiągnąć wydajność. – sathis
Czy naprawdę musisz pobrać rzeczywistą zawartość wszystkich tysięcy wierszy? Nie możesz zrobić swojej paginacji, a potem zacząć pobierać na stronę? – cherouvim
@cherouvim on musi zrobić sortowanie. Mówi, dlaczego wybiera wszystkie rekordy, które zakładam. – sathis