Kedua tipe data ditangani secara hampir identik. Ada banyak kemungkinan penyebab kelambanan lainnya. (Tapi tidak ada yang saya tahu yang akan mengatakan MEDIUMTEXT
lebih buruk dari VARHAR
.)
Jadi... Mari kita lihat apakah kita bisa mempercepat halaman web...
Masukan microtime(true)
di sekitar panggilan mysql -- untuk memastikan itu MySQL, bukan PHP. "0.019secs" masuk akal; "1,5 - 2 detik" terdengar seperti ada sesuatu yang terjadi di PHP.
Gunakan InnoDB, bukan ISAM saya. (Terlepas dari klaim Anda sebaliknya.)
Tune dengan benar; mari kita lihat SHOW VARIABLES LIKE '%buffer%';
Berapa banyak RAM yang Anda miliki? (Bertukar sangat buruk untuk kinerja.)
Berapa banyak baris yang Anda kembalikan? Tidak praktis untuk memiliki lebih dari beberapa lusin pada halaman web, jadi tambahkan ORDER BY...LIMIT...
.
Jika batas UI adalah 1000 karakter, gunakan TEXT
atau VARCHAR(1000)
, bukan MEDIUMTEXT
. Jika Anda mencoba meningkatkan hingga 64K byte (berpotensi 4K utf8mb4 karakter ), lalu gunakan TEXT
.
Anda memang membutuhkan ini (dengan kolom di kedua urutan):
INDEX(part_id, language)
Jika ada banyak "churn" (penghapusan dan/atau pembaruan diikuti oleh lebih banyak sisipan) di tabel MyISAM, data dapat terfragmentasi, sehingga lambat. Ini dapat terjadi untuk keduanya VARCHAR
dan TEXT
. Ini tidak terjadi dengan InnoDB.