sql >> Database teknologi >  >> RDS >> Mysql

Optimering af MySQL-forespørgsler med IN-operatør

Indeks på categoryId hjælper ikke i dette tilfælde, IN (...) forespørgsler vil alligevel producere sekvensscanning i stedet for indeksopslag.

Jeg ville overveje først at redesigne systemet for at slippe af med flere kategorier, og hvis det ikke er passende, cache forespørgselsresultater.

For eksempel kan du oprette en hjælpetabel items_category_groups(hash, item_id) og efter klientforespørgsel på flere kategorier hash deres kombinerede id'er og slå denne tabel op. Hvis den ikke findes, lav en dyr forespørgsel og udfyld denne tabel. Hvis fundet, lav en billig forespørgsel ved at slutte sig til disse tabeller. Andre cachingværktøjer som memcached vil også fungere.




  1. java.sql.SQLException:Ugyldig argumentværdi:java.io.NotSerializableException

  2. Nogen gode PHP MySQL-kompatible rapporteringsrammer derude?

  3. Hvordan får jeg oplysninger om en indeks- og tabelejer i Oracle?

  4. SQL Server Parallel Backup Restore -2