2012-04-24 43 views
0

我有一個非常小的腳本,它從請求頭獲取一些參數,並將一個INSERT查詢發送到本地主機上託管的數據庫。MySQL配置建議

該數據庫有一個表,我不運行任何形式的報告或任何東西,所以基本上100%的查詢到這臺服務器是INSERT查詢。

腳本被大量訪問,所以我得到了很多這些查詢同時運行。

我正在尋找方法來調整配置文件,以支持我的特定需求。

編輯

我目前看到的phpMyAdmin-這些變量>的狀態,似乎高:

Slow_queries 22 
Handler_read_rnd 1,496 k 
Handler_read_rnd_next 111M 
Created_tmp_disk_tables 495 
Sort_merge_passes 77 
Opened_tables 332 
Table_locks_waited 154 

的原因,我問的是,因爲我會得到很多更多的併發連接很快,我想在服務器可以處理它之前進行調整。

+0

你有任何性能問題? (負載太高?) – 2012-04-24 12:28:13

+0

如果表格是**從不**讀取,那麼它有什麼意義? – eggyal 2012-04-24 12:28:59

+0

@eggyal我正在存儲數據,每隔幾個星期一次將其導出並將其加載到另一個系統 - 另一個系統是我對數據執行其他查詢的位置。 – user838437 2012-04-24 12:29:55

回答

0

從你告訴我們,我唯一的建議是將你的錶轉換爲使用InnoDB引擎,如果它目前使用另一個引擎。原因是,在InnoDB中,INSERTs非常快(行按主鍵順序存儲,所以它們基本上只是附加到表的末尾)。

+0

好的..我目前正在使用MyISAM - 在將此更改爲InnoDB之後,我應該有多少區別? – user838437 2012-04-24 12:39:28

+0

@Sobolan,不能正確。 MyISAM和InnoDB在內部非常不同。因此,如果我在InnoDB中有一個電子郵件地址作爲主鍵,它會將其追加到最後?沒有機會。 InnoDB將其信息存儲在btree中。因此它會將電子郵件地址放在適合主鍵順序的地方。 MyIsam的工作方式不同請參閱http://stackoverflow.com/questions/2362667/how-b-tree-indexing-works-in-mysql – Namphibian 2012-04-24 12:50:53

+0

另請閱讀http://rorguide.blogspot.com/2011/06/difference-between -innodb-and-myisam.html InnoDB非常適合ACID投訴表,但在您的情況下,MyISAM可能更有意義。基本上在MyISAM表中,記錄總是附加在最後。 MyISAM是一個堆,主鍵是堆棧頂部的索引。這使得記錄數據變得很快。然而,這兩者是截然不同的。在InnoDB中,數據按照主鍵的順序存儲。在MyISAM中,它最後附有一個索引,指向MyISAM文件中的記錄位置。 – Namphibian 2012-04-24 12:55:00