sql >> Database >  >> RDS >> Mysql

mysql select query-optimalisatie en hoe limiet werkt in mysql

Regelmatige indexering kan niet worden gebruikt om die zoekopdracht te verbeteren. MySQL-indexen zijn B-trees, wat betekent dat ze heel snel een voorvoegsel van de geïndexeerde kolom kunnen vinden. Maar sinds je LIKE zoekopdracht heeft % in het begin is er geen uniek voorvoegsel om naar te zoeken. Dus elke rij moet worden gescand om overeen te komen met het patroon.

MySQL ondersteunt echter ook zoeken in volledige tekst. Dit creëert een index van alle woorden in de kolom en kan deze woorden snel vinden. Zie de documentatie voor details.

Als u LIMIT 10 . gebruikt , stopt het met scannen zodra het de eerste 10 rijen vindt die aan de voorwaarden voldoen. Tenzij je ook ORDER BY . gebruikt -- dan moet het alle rijen vinden zodat het ze kan sorteren voordat het de eerste 10 selecteert.




  1. Hoe OR &AND te gebruiken in de WHERE-clausule in mysql

  2. Kan niet rechtstreeks verbinding maken van Android naar SQL Server

  3. Hoe ongewenste voorlooptekens uit een string in MySQL te verwijderen

  4. LEFT JOIN vs. LEFT OUTER JOIN in SQL Server