Kami memiliki aplikasi web sederhana yang berjalan pada mesin virtual yang menyimpan datanya dalam database MySQL 5.5 dengan mesin InnoDB. Semuanya bekerja dengan baik selama sekitar tiga tahun, tetapi tiba-tiba menjadi sangat lambat.
Sebagai contoh, saya memiliki alamat memegang tabel yang sangat sederhana:
CREATE TABLE `addresses` (
`address_id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(64) CHARACTER SET latin1 NOT NULL,
`firstname` varchar(64) CHARACTER SET latin1 NOT NULL,
`street` varchar(64) CHARACTER SET latin1 NOT NULL,
`housenumber` varchar(16) CHARACTER SET latin1 NOT NULL,
`zip` varchar(5) CHARACTER SET latin1 NOT NULL,
`city` varchar(64) CHARACTER SET latin1 NOT NULL,
`email` varchar(64) CHARACTER SET latin1 NOT NULL,
`phone` varchar(16) CHARACTER SET latin1 NOT NULL,
`birthdate` date NOT NULL,
PRIMARY KEY (`address_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
Tabel ini menampung sekitar 800 entri yang sebenarnya tidak banyak. Tetapi menjalankan kueri
SELECT * FROM addresses
untuk tujuan pengujian, sepertinya tidak pernah selesai. Saya memeriksa ini dengan CLI mysql di server itu sendiri: Ini output beberapa baris tabel dan kemudian menunggu sangat lama sampai output baris berikutnya.
Jadi mungkin itu adalah masalah dalam fase pengiriman data, tapi saya tidak yakin.
VM memiliki 2GB RAM dan hanya 320MB yang digunakan. CPU juga beroperasi pada sangat rendah 1 hingga 2%. mytop tidak menampilkan kueri lain yang memblokir server. Admin TI mengatakan bahwa mereka tidak mengubah apa pun di sisi perangkat keras.
Saya sudah mencoba beberapa hal seperti me-restart server database, me-restart mesin virtual. Tidak ada yang membantu.
edit:
EXPLAIN SELECT * FROM addresses
memberi saya hasil ini:
+----+-------------+-----------+------+---------------+------+---------+------+------+-------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-----------+------+---------------+------+---------+------+------+-------+
| 1 | SIMPLE | addresses | ALL | NULL | NULL | NULL | NULL | 793 | |
+----+-------------+-----------+------+---------------+------+---------+------+------+-------+
1 row in set (0.00 sec)
mysql -u username -ppassword mydb -e 'SELECT * FROM addresses
menghasilkan lambat, tetapi menambahkan `> test.txt`, itu berjalan sangat cepat. Sekarang ini mungkin pertanyaan yang berbeda !? Bagaimana saya bisa menyelidiki ini?