2013-07-18 78 views
1

工作在PHP項目相關的網絡報廢,我的目標是將數據存儲到MySQL數據庫,我在9列表中的3個索引使用唯一鍵索引,記錄是超過5k。如何提高mysql數據庫插入的性能

  1. 我應該檢查程序級別的唯一數據,比如在數組中插入值,然後在插入數據庫之前進行比較?
  2. 有什麼辦法可以加快數據庫的插入速度嗎?
+0

你能詳細闡述一下你在插入什麼,以及它的單個查詢和你是否先做匹配。 – azngunit81

+0

即時通訊插入的業務名稱平均字符長度30,街道地址平均長度40,網站等 我在數據庫級別不匹配程序 –

回答

0

您可以創建您當前擁有的表的副本,除了任何字段上沒有索引。將數據存儲在此表中。

然後使用事件將數據從臨時表移動到主表中。一旦數據被移動到主表,然後從臨時表中刪除。

0

你可以按照你的更新與triger。你應該做更新表,你必須正確觸發這張表。

1

使用PDO,mysqli_ *功能,以提高插入到數據庫

0

你可以在你的查詢中使用 「INSERT忽略」。這樣,如果違反任何唯一的約束,記錄將不會被插入。

例子:

INSERT IGNORE INTO table_name SET name = 'foo', value = 'bar', id = 12345; 
0

永遠不要創建一個重複表,這是一個反SQL模式,它使得它更難以與您的數據。

也許PDO和準備好的聲明會給你一些提振,但不要期望從它的奇蹟。

multible INSERT IGNORE也可能會給你一些提振,但不要期望從它的奇蹟。

你應該產生一個multiinsert查詢像這樣

INSERT INTO database.table(列)VALUES(值),(值),(值) 記住保持在最大數據包大小MySQL會有。 這樣索引文件必須更新一次。