首頁 >php教程 >php手册 >以下3种方案哪种速度最快

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

WBOY
WBOY原創
2016-06-13 09:52:461197瀏覽

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其实是二次查询,先删除再增加
不过优点是不用事务时可以一次合并几句
由于先删除再增加,不知道在高并发下会怎么样,要照顾到读
还没实际测试, 不知道能快多少


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:关于str_pad下一篇:zend studio 的问题