Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kinerja MySQL dari kueri membuat penambahan kolom di mana klausa

@ e4c5 benar bahwa tidak ada indeks yang akan membantu kueri saat ini. Anda dapat memulai dengan menambahkan indeks berikut dan mengubah kueri dengan ketentuan tambahan agar indeks dapat digunakan:

ALTER TABLE myTable
ADD INDEX(categoryId, value1),
ADD INDEX(categoryId, value2),
ADD INDEX(categoryId, value3),
ADD INDEX(categoryId, value4);

Dan perbarui kueri seperti ini:

SELECT * FROM myTable WHERE categoryId = 1 AND (value1 <= 9) AND (value2 <= 9) AND (value3 <= 9) AND (value4 <= 9) AND (value1 + value2 + value3 + value4) > 9;
SELECT * FROM myTable WHERE categoryId = 1 AND (value1 <= 5) AND (value3 <= 5) AND (value4 <= 5) AND (value1 + value3 + value4) > 5;

Kondisi tambahan membantu mempersempit jumlah baris yang akan diproses. Menambahkan indeks pada lebih banyak kolom akan mempercepat ini lebih jauh, tetapi saya sarankan untuk mencoba ini terlebih dahulu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menduplikasi tabel di MYSQL tanpa menyalin satu baris dalam satu waktu

  2. Bagaimana Anda mendapatkan id baris dengan aman dan efisien setelah disisipkan dengan mysql menggunakan MySQLdb dengan python?

  3. Kelompokkan kueri mysql dengan interval 15 menit

  4. mysql Memilih dari dua tabel yang berbeda.

  5. MySQL mengkonversi Derajat, Menit, Detik ke Derajat desimal