sql >> Database >  >> RDS >> Mysql

Langzame MySQL-query - Wachten op vergrendeling van querycache

Ik heb mijn probleem met langzame query's opgelost. Om het probleem samen te vatten:het kostte 22 seconden om 7000 rijen op te vragen uit een 20 mln rij, 1,7 GB geïndexeerde tabel. Het probleem was dat de cache te klein was en de query voor elke query naar de schijf moest. Ik zou denken dat de schijftoegang sneller zou zijn dan wat ik zag, omdat ik uit een geïndexeerde kolom ging, dus de hoeveelheid gegevens die van de schijf werd gelezen, had klein moeten zijn. Maar ik vermoed dat er veel overhead is met toegang tot de InnoDB-opslag op schijf.

Zodra ik innodb_buffer_pool_size=1024M . heb ingesteld in het my.ini-bestand zou de eerste zoekopdracht lang duren, maar alle volgende zoekopdrachten zouden binnen een seconde klaar zijn.

Helaas heeft de profilering niet echt geholpen.



  1. Hoe selecteer je de eerste rij voor elke groep in MySQL?

  2. Verdiep een datum in SQL-server

  3. De server heeft een interne fout of verkeerde configuratie aangetroffen en kon uw verzoek niet voltooien

  4. Hoe unicode-gegevens in orakel op te slaan?