2013-05-10 100 views
1

我們的服務器數據庫在mysql 5.1 我們有db4中的754個表。我們爲每個項目創建一個表。因此,大量的表格。 從過去的一週我已經注意到插入和更新任何表格的延遲很長。如果我創建一個新表格並插入它,它需要一分鐘插入大約300個recs。Mysql插入,更新非常慢

我們在同一臺服務器上的測試數據庫有597個表在測試數據庫中,相同插入速度非常快。

默認引擎是MYISAM。但是我們在INNODB中沒有幾張桌子。

有幾個觸發器正在運行。在我刪除觸發器後,它變得更快一些。但速度不夠快。

回答

0

正如@ swapnesh所言,DESCRIBE命令對於性能調試非常有用。 您還可以使用檢查安裝是否存在問題:

你使用這樣的:

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

當然,在這裏我假設你運行某種一個基於Unix的系統。可以使用OPTIMIZE。根據手冊它執行以下操作:

重新組織表數據的物理存儲和相關聯的索引 數據,以減少存儲空間和提高I/O效率時 訪問該表。每個表所作的確切的變化取決於 由該表所使用的存儲引擎

的語法是:在本體而不是一個接一個地製成時

OPTIMIZE TABLE tablename 
0

插入通常更快。嘗試在每條語句中插入10,30或100條記錄。

如果您使用jdbc,您可能可以通過批處理實現相同的效果,而無需更改SQL。