我的理解,這個(gè)和數(shù)據(jù)庫(kù),php有關(guān),thinkphp沒(méi)多大關(guān)系,捏可以在數(shù)據(jù)庫(kù)新建一個(gè)字段,內(nèi)容是上家是誰(shuí),每當(dāng)此用戶賣(mài)出去一單,就找他的上家,在找他上家的上家,他上家的上家的上家,三次,如果有某一次沒(méi)有找到,就說(shuō)明他沒(méi)有上家,終止此次循環(huán),在循環(huán)內(nèi)做你想要的操作
創(chuàng)新互聯(lián)成立于2013年,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元石家莊做網(wǎng)站,已為上家服務(wù),為石家莊各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575
我們經(jīng)常會(huì)遇到操作一張大表,發(fā)現(xiàn)操作時(shí)間過(guò)長(zhǎng)或影響在線業(yè)務(wù)了,想要回退大表操作的場(chǎng)景。在我們停止大表操作之后,等待回滾是一個(gè)很漫長(zhǎng)的過(guò)程,盡管你可能對(duì)知道一些縮短時(shí)間的方法,處于對(duì)生產(chǎn)環(huán)境數(shù)據(jù)完整性的敬畏,也會(huì)選擇不做介入。最終選擇不作為的原因大多源于對(duì)操作影響的不確定性。實(shí)踐出真知,下面針對(duì)兩種主要提升事務(wù)回滾速度的方式進(jìn)行驗(yàn)證,一種是提升操作可用內(nèi)存空間,一種是通過(guò)停實(shí)例,禁用 redo 回滾方式進(jìn)行進(jìn)行驗(yàn)證。
仔細(xì)閱讀過(guò)官方手冊(cè)的同學(xué),一定留意到了對(duì)于提升大事務(wù)回滾效率,官方提供了兩種方法:一是增加 innodb_buffer_pool_size 參數(shù)大小,二是合理利用 innodb_force_recovery=3 參數(shù),跳過(guò)事務(wù)回滾過(guò)程。第一種方式比較溫和,innodb_buffer_pool_size 參數(shù)是可以動(dòng)態(tài)調(diào)整的,可行性也較高。第二種方式相較之下較暴力,但效果較好。
兩種方式各有自己的優(yōu)點(diǎn),第一種方式對(duì)線上業(yè)務(wù)系統(tǒng)影響較小,不會(huì)中斷在線業(yè)務(wù)。第二種方式效果更顯著,會(huì)短暫影響業(yè)務(wù)連續(xù),回滾所有沒(méi)有提交的事務(wù)。
請(qǐng)看手冊(cè):
使用 transaction 方法操作數(shù)據(jù)庫(kù)事務(wù),當(dāng)發(fā)生異常會(huì)自動(dòng)回滾,例如:
自動(dòng)控制事務(wù)處理
Db::transaction(function(){
Db::table('think_user')-find(1);
Db::table('think_user')-delete(1);
});
也可以手動(dòng)控制事務(wù),例如:
// 啟動(dòng)事務(wù)
Db::startTrans();
try{
Db::table('think_user')-find(1);
Db::table('think_user')-delete(1);
// 提交事務(wù)
Db::commit();
} catch (\Exception $e) {
// 回滾事務(wù)
Db::rollback();
}
注意在事務(wù)操作的時(shí)候,確保你的數(shù)據(jù)庫(kù)連接是相同的。
網(wǎng)站欄目:多級(jí)分銷(xiāo)數(shù)據(jù)回滾php的簡(jiǎn)單介紹
網(wǎng)頁(yè)鏈接:http://aaarwkj.com/article44/hhheee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、微信小程序、搜索引擎優(yōu)化、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)