需求:
創(chuàng)新互聯(lián)公司專(zhuān)注于企業(yè)成都營(yíng)銷(xiāo)網(wǎng)站建設(shè)、網(wǎng)站重做改版、中牟網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5建站、商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性?xún)r(jià)比高,為中牟等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
如何將多條update語(yǔ)句合并為一條update語(yǔ)句:
如,update table1 set col='2012' haha='hello' where id='2014001'
update table1 set col='1009' haha='nihao' where id='2014003'
上面 這兩行 執(zhí)行之后,每一條需要5秒,總共需要10秒才能執(zhí)行完.
如何合并為一條?
在網(wǎng)上找了好久,總結(jié)了一個(gè)相對(duì)簡(jiǎn)單的語(yǔ)句(有些語(yǔ)句是函數(shù)語(yǔ)句,有點(diǎn)暈),如下:
update table1 set col=(case id
when '2014001' then '2012'
when '2014003' then '1009' end),
haha=(case id
when '2014001' then 'hello'
when '2014003' then 'nihao' end)
where id in('2014001','2014003')
改成這個(gè)之后,還是需要5秒,但是,它只執(zhí)行了一次,所以只需要5秒
您好.
以前有高人寫(xiě)過(guò)類(lèi)似的:
select id,group_concat(re_id order by re_id separator ",") as re_id
from tablename
group by id
方法2:
select group_concat(list_name) from aa_list
如果還有問(wèn)題,可以繼續(xù)追問(wèn),感謝。
MySQL InnoDB 表數(shù)據(jù)頁(yè)或者二級(jí)索引頁(yè)(簡(jiǎn)稱(chēng)數(shù)據(jù)頁(yè)或者索引頁(yè))的合并與分裂對(duì) InnoDB 表整體性能影響很大;數(shù)據(jù)頁(yè)的這類(lèi)操作越多,對(duì) InnoDB 表數(shù)據(jù)寫(xiě)入的影響越大。
MySQL 提供了一個(gè)數(shù)據(jù)頁(yè)合并臨界值(MERGE_THRESHOLD),在某些場(chǎng)景下,可以人為介入,減少數(shù)據(jù)頁(yè)的合并與分裂。
在 InnoDB 表里,每個(gè)數(shù)據(jù)頁(yè)默認(rèn)16K 大小,默認(rèn) MERGE_THRESHOLD 值為 50,取值范圍從 1 到 50,默認(rèn)值即是最大值。也就是當(dāng)頁(yè)面記錄數(shù)占比小于 50% 時(shí),MySQL 會(huì)把這頁(yè)和相鄰的頁(yè)面進(jìn)行合并,保證數(shù)據(jù)頁(yè)的緊湊,避免太多浪費(fèi)。
您好.
以前有高人寫(xiě)過(guò)類(lèi)似的:
select id,group_concat(re_id order by re_id separator ",") as re_id
from tablename
group by id
方法2:
select group_concat(list_name) from aa_list
如果還有問(wèn)題,可以繼續(xù)追問(wèn),感謝。