我們的服務器數據庫在mysql 5.1 我們有db4中的754個表。我們爲每個項目創建一個表。因此,大量的表格。 從過去的一週我已經注意到插入和更新任何表格的延遲很長。如果我創建一個新表格並插入它,它需要一分鐘插入大約300個recs。Mysql插入,更新非常慢
我們在同一臺服務器上的測試數據庫有597個表在測試數據庫中,相同插入速度非常快。
默認引擎是MYISAM。但是我們在INNODB中沒有幾張桌子。
有幾個觸發器正在運行。在我刪除觸發器後,它變得更快一些。但速度不夠快。
我們的服務器數據庫在mysql 5.1 我們有db4中的754個表。我們爲每個項目創建一個表。因此,大量的表格。 從過去的一週我已經注意到插入和更新任何表格的延遲很長。如果我創建一個新表格並插入它,它需要一分鐘插入大約300個recs。Mysql插入,更新非常慢
我們在同一臺服務器上的測試數據庫有597個表在測試數據庫中,相同插入速度非常快。
默認引擎是MYISAM。但是我們在INNODB中沒有幾張桌子。
有幾個觸發器正在運行。在我刪除觸發器後,它變得更快一些。但速度不夠快。
USE DESCRIBE瞭解您的查詢執行計劃。
查看更多http://dev.mysql.com/doc/refman/5.1/en/explain.html的使用方法。
正如@ 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
插入通常更快。嘗試在每條語句中插入10,30或100條記錄。
如果您使用jdbc,您可能可以通過批處理實現相同的效果,而無需更改SQL。
更好的意思是作爲一個評論... – hd1 2013-05-10 06:18:30
@ hd1甚至可以分類在過分廣泛..不是一個真正的問題..大聲笑 – swapnesh 2013-05-10 06:21:12