MySQL手冊版本 5.0.20-MySQL最佳化(四) (1)(3)_PHP教程

來源:互聯網
上載者:User
7.2.12 加速 INSERT


插入一條記錄花費的時間由以下幾個因素決定,後面的數字大致表示影響的比例:


串連:(3)


發送查詢給伺服器:(2)


解析查詢:(2)


插入記錄:(1 x 記錄大小)


插入索引:(1 x 索引數量)


關閉:(1)


這裡並沒有考慮初始化時開啟資料表的開銷,因為每次執行查詢只會做這麼一次。


如果是 B-tree 索引的話,隨著索引數量的增加,插入記錄的速度以 log N 的比例下降。


可以使用以下幾種方法來提高插入速度:


如果要在同一個用戶端在同一時間插入入很多記錄,可以使用 INSERT 語句附帶有多個 VALUES 值。這種做法比使用單一值的 INSERT 語句快多了(在一些情況下比較快)。如果是往一個非空的資料表裡增加記錄,可以調整變數 bulk_insert_buffer_size 的值使之更快。詳情請看"5.2.3 Server System Variables"。


如果要從不同的用戶端中插入大量記錄,使用 INSERT DELAYED 語句也可以提高速度。詳情請看"14.1.4 INSERT Syntax"。


對 MyISAM 而言,可以在 SELECT 語句正在運行時插入記錄,只要這時候沒有正在刪除記錄。


想要將一個文字檔載入到資料表中,可以使用 LOAD DATA INFILE。這通常是使用大量 INSERT 語句的20倍。詳情請看"14.1.5 LOAD DATA INFILE Syntax"。

http://www.bkjia.com/PHPjc/630976.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/630976.htmlTechArticle7.2.12 加速 INSERT 插入一條記錄花費的時間由以下幾個因素決定,後面的數字大致表示影響的比例: 串連:(3) 發送查詢給伺服器:(2)...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.