MySQL

MySQL-index gör skillnad

mysql-table-index

Jag satt nyligen med ett projekt som hade en stor databas. Jag använde Symfony2 för att utvecklingen skulle gå snabbt och för att sidan skulle bli stabil och säker. Projektet var av den typen att ibland var man tvungen att göra tusentals queries per request. Såklart så var det inte perfekta queries. De såg ut ungefär så här: SELECT * FROM Persons WHERE name=”Tobias Nyholm”; Om man har 50 000 rader i den tabellen så kommer det gå långsamt. Varje query tog ungefär 200 millisekunder. 1000 queries tar ungefär 200 sekunder vilket är på tok för lång tid. Lösningen var dock enkel. Jag satte ett unikt index på name. Det innebär att MySQL behöver mer hårddisk för att lagra indexet. Men hårddisk är billigare än både minne och CPU så det är inga problem. Samma query med index tar 2 millisekunder. Jag tog alltså ner exekveringstiden till 1% med hjälp [...]

Skrivet juni 15th, 2012 av Tobias