Aku mung nemoni masalah kinerja ing database SQL ing ngisor iki: Ing tabel SQL sing diarani "pangguna" kanthi ~ 1.000.000 entri, butuh 28 detik sing ora bisa ditampa kanggo nemtokake jumlah registrasi saiki. Wektu registrasi disimpen ing format "Ymd H: i: s" ing kolom "digawe".
Pitakon sing digunakake
SELECT COUNT(ID) FROM users WHERE DATE(created) = '2014-12-21';
nyebabake wektu mbukak iki, sanajan wis ana indeks ing kolom "digawe" format DATETIME
ALTER TABLE `users` ADD INDEX `created` (`created`);
wis disetel. Alesan kinerja sing kurang apik yaiku telpon fungsi DATE: Kolom sing diindeks "digawe" dikirim dening fungsi DATE lan nggawe indeks ora efektif. Query Optimizer mung ngerti "digawe", nanging dudu asile DATE (digawe). Pitakon sing dioptimalake
SELECT COUNT(ID) FROM users WHERE created BETWEEN '2014-12-21' AND '2014-12-21 23:59:59';
ndadékaké asil sing dipengini ing wektu 0,4 detik.