Sisipan Mysql, pembaruan sangat lambat

Database server kami di mysql 5.1 kami memiliki 754 tabel di db kami. Kami membuat tabel untuk setiap proyek. Oleh karena itu jumlah tabel yang banyak. Dari satu minggu terakhir saya melihat penundaan yang sangat lama dalam penyisipan dan pembaruan ke tabel mana pun. Jika saya membuat tabel baru dan memasukkan ke dalamnya, diperlukan satu menit untuk memasukkan sekitar 300 rekaman.

Sedangkan database pengujian kami di server yang sama memiliki 597 tabel Penyisipan yang sama sangat cepat dalam pengujian db.

Mesin defaultnya adalah MYISAM. Tapi kami memiliki beberapa tabel di INNODB.

Ada beberapa pemicu yang berjalan. Setelah saya menghapus pemicunya, itu menjadi lebih cepat. Tapi itu tidak cukup cepat.


person VYSHNAVI    schedule 10.05.2013    source sumber


Jawaban (3)


GUNAKAN DESCRIBE untuk mengetahui rencana eksekusi kueri Anda.

Lihat lebih lanjut di http://dev.mysql.com/doc/refman/5.1/en/explain.html untuk penggunaannya.

person swapnesh    schedule 10.05.2013
comment
@ hd1 bahkan dapat dikategorikan dalam terlalu luas..bukan pertanyaan sebenarnya..lol - person swapnesh; 10.05.2013

Seperti yang disebutkan @swapnesh, perintah DESCRIBE sangat berguna untuk debugging kinerja. Anda juga dapat memeriksa masalah instalasi Anda menggunakan:

Anda menggunakannya seperti ini:

wget https://raw.github.com/rackerhacker/MySQLTuner-perl/master/mysqltuner.pl
chmod +x mysqltuner.pl
./mysqltuner.pl

Tentu saja, di sini saya berasumsi bahwa Anda menjalankan semacam sistem berbasis Unix.

Anda dapat menggunakan OPTIMALKAN. Menurut Manual ia melakukan hal berikut:

Mengatur ulang penyimpanan fisik data tabel dan data indeks terkait, untuk mengurangi ruang penyimpanan dan meningkatkan efisiensi I/O saat mengakses tabel. Perubahan pasti yang dilakukan pada setiap tabel bergantung pada mesin penyimpanan yang digunakan oleh tabel tersebut

Sintaksnya adalah:

OPTIMIZE TABLE tablename
person CodeTower    schedule 10.05.2013

Sisipan biasanya lebih cepat bila dibuat dalam jumlah besar daripada satu per satu. Coba masukkan 10, 30, atau 100 catatan per pernyataan.

Jika Anda menggunakan jdbc Anda mungkin dapat mencapai efek yang sama dengan batching, tanpa mengubah SQL.

person Joni    schedule 10.05.2013