程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 以下3種方案哪種速度最快

以下3種方案哪種速度最快

編輯:關於PHP編程

D0000D發往論壇板塊-------------------------------------------------------
No0 號板塊 dedecms
D8888D貼子標題-------------------------------------------------------
以下3種方案哪種速度最快?
D8888D主貼內容-------------------------------------------------------


mysql表
a, b, c, d, e, f字段

a為主鍵, 類型為vachar(20)

現在要更新, 一共1萬條記錄
要執行以下語句1萬次, 不使用事務

方案1:
UPDATE table SET b = 222 , c = 333, d = 444 WHERE a = xx

方案2:
REPLACE INTO table VALUES($a,$b,$c,$d,$e,$f)

方案3:
等你寫

我來回答




D8888D回貼內容-------------------------------------------------------
1吧.

D8888D回貼內容-------------------------------------------------------
也很想知道這個問題,幫頂一個。

D8888D回貼內容-------------------------------------------------------
方案3!~[img]http://www.phpchina.com/bbs/images/smilies/default/victory.gif[/img]

D8888D回貼內容-------------------------------------------------------
應該沒差別吧?

D8888D回貼內容-------------------------------------------------------
樓主似乎在弄數據同步。
數據同步有三種需求:增,刪,改。
方案1只滿足改的需求。
方案2滿足增和改的需求。

D8888D回貼內容-------------------------------------------------------
封裝成一條 REPLACE INTO 語句或許效率會比較高,因為只需要向數據庫服務器發送一次指令,像這樣:

REPLACE INTO table VALUES (1, 1, 1, 1),(2, 1, 1, 1),(3, 1, 1, 1),(4, 1, 1, 1);

D8888D回貼內容-------------------------------------------------------
[url=http://bbs.phpchina.com/redirect.php?goto=findpost&pid=1067540&ptid=126860]鏈接標記6#[/url] faallan

恩!

不過我只需要改, 不需要增.

D8888D回貼內容-------------------------------------------------------
[url=http://bbs.phpchina.com/redirect.php?goto=findpost&pid=1067568&ptid=126860]鏈接標記7#[/url] 路游寶寶

replace into其實是二次查詢,先刪除再增加
不過優點是不用事務時可以一次合並幾句
由於先刪除再增加,不知道在高並發下會怎麼樣,要照顧到讀
還沒實際測試, 不知道能快多少


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved