[SQL ] 如何增加insert的效能!?

看板Database作者 (Vincent)時間12年前 (2013/04/24 10:21), 編輯推噓1(1010)
留言11則, 6人參與, 最新討論串1/1
各位大大好. 目前我遇到一個問題. 使用Mysql! 我有大約5000筆的資料insert, 有15個欄位,資料量大概都20個字元以下. 分3個主鍵值. 每次執行都要跑快2個多小時. 請問各位有什麼方法變快一點嗎? =========================================== 我找到問題點了....因為我有其他函式有太多不必要迴圈XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.31.200.209

04/24 10:26, , 1F
你HD的IO太糟了吧
04/24 10:26, 1F

04/24 10:31, , 2F
呵呵,一般家用主機咩!請問資料已經有30萬筆有影響嗎?
04/24 10:31, 2F
※ 編輯: kingoface 來自: 61.31.200.209 (04/24 11:18)

04/24 11:43, , 3F
有...你每塞一筆資料..3X萬筆的資料要重排INDEX
04/24 11:43, 3F

04/24 14:15, , 4F
PK欄位是auto_increment的話,情況會單純的多
04/24 14:15, 4F

04/24 15:51, , 5F
Prepared Statement , autocommit => false
04/24 15:51, 5F

04/24 22:41, , 6F
1. disable index or drop index
04/24 22:41, 6F

04/24 22:42, , 7F
2. insert data with 5000 ~ 10000 筆commit一次
04/24 22:42, 7F

04/24 22:43, , 8F
3.rebuild index 4.假如my sql有insert /* +append */
04/24 22:43, 8F

04/24 22:44, , 9F
使用insert +append hint會更快 。以上是oracle的方法
04/24 22:44, 9F

04/24 22:44, , 10F
第2點假如undo(rollback) 夠大就直接塞吧
04/24 22:44, 10F

04/24 22:45, , 11F
以上是oracle的用法,mysql應該可找尋類似方法
04/24 22:45, 11F
文章代碼(AID): #1HTq6v4g (Database)