国产精品chinese,色综合天天综合精品网国产在线,成午夜免费视频在线观看,清纯女学生被强行糟蹋小说

    <td id="ojr13"><tr id="ojr13"><label id="ojr13"></label></tr></td>
        • <source id="ojr13"></source>
            <td id="ojr13"><ins id="ojr13"><label id="ojr13"></label></ins></td>

            當(dāng)前位置:文章中心>技術(shù)教程
            公告通知 新聞快遞 技術(shù)教程 產(chǎn)品展示

            最強(qiáng)MySQL數(shù)據(jù)庫設(shè)計規(guī)范...(三)

            發(fā)布時間:2022-02-16 點擊數(shù):772

            2.2.2 多表銜接

            1. 【強(qiáng)制】制止跨db的join句子。由于這樣可以減少模塊間耦合,為數(shù)據(jù)庫拆分奠定堅實基礎(chǔ)。
            2. 【強(qiáng)制】制止在業(yè)務(wù)的更新類SQL句子中運(yùn)用join,比方update t1 join t2…。
            3. 【主張】不主張運(yùn)用子查詢,主張將子查詢SQL拆開結(jié)合程序多次查詢,或運(yùn)用join來替代子查詢。
            4. 【主張】線上環(huán)境,多表join不要超越3個表。
            5. 【主張】多表銜接查詢推薦運(yùn)用別號,且SELECT列表中要用別號引用字段,數(shù)據(jù)庫.表格局,如select a from db1.table1 alias1 where …。
            6. 【主張】在多表join中,盡量選取結(jié)果集較小的表作為驅(qū)動表,來join其他表。

            2.2.3 業(yè)務(wù)

            1. 【主張】業(yè)務(wù)中INSERT|UPDATE|DELETE|REPLACE句子操作的行數(shù)操控在2000以內(nèi),以及WHERE子句中IN列表的傳參個數(shù)操控在500以內(nèi)。
            2. 【主張】批量操作數(shù)據(jù)時,需求操控業(yè)務(wù)處理間隔時間,進(jìn)行必要的sleep,一般主張值5-10秒。
            3. 【主張】對于有auto_increment屬性字段的表的刺進(jìn)操作,并發(fā)需求操控在200以內(nèi)。
            4. 【強(qiáng)制】程序設(shè)計有必要考慮“數(shù)據(jù)庫業(yè)務(wù)阻隔級別”帶來的影響,包括臟讀、不可重復(fù)讀和幻讀。線上主張業(yè)務(wù)阻隔級別為repeatable-read。
            5. 【主張】業(yè)務(wù)里包含SQL不超越5個(付出業(yè)務(wù)除外)。由于過長的業(yè)務(wù)會導(dǎo)致鎖數(shù)據(jù)較久,MySQL內(nèi)部緩存、銜接耗費(fèi)過多等雪崩問題。
            6. 【主張】業(yè)務(wù)里更新句子盡量基于主鍵或unique key,如update … where id=XX; 否則會發(fā)生間隙鎖,內(nèi)部擴(kuò)展確定規(guī)模,導(dǎo)致系統(tǒng)功能下降,發(fā)生死鎖。
            7. 【主張】盡量把一些典型外部調(diào)用移出業(yè)務(wù),如調(diào)用webservice,拜訪文件存儲等,然后防止業(yè)務(wù)過長。
            8. 【主張】對于MySQL主從推遲嚴(yán)格靈敏的select句子,請敞開業(yè)務(wù)強(qiáng)制拜訪主庫。

            2.2.4 排序和分組

            1. 【主張】減少運(yùn)用order by,和業(yè)務(wù)溝通能不排序就不排序,或?qū)⑴判蚍诺匠绦蚨巳プ觥rder by、group by、distinct這些句子較為耗費(fèi)CPU,數(shù)據(jù)庫的CPU資源是極端名貴的。
            2. 【主張】order by、group by、distinct這些SQL盡量運(yùn)用索引直接檢索出排序好的數(shù)據(jù)。如where a=1 order by可以運(yùn)用key(a,b)。
            3. 【主張】包含了order by、group by、distinct這些查詢的句子,where條件過濾出來的結(jié)果集請保持在1000行以內(nèi),否則SQL會很慢。

            2.2.5 線上制止運(yùn)用的SQL句子

            1. 【高危】禁用update|delete t1 … where a=XX limit XX;這種帶limit的更新句子。由于會導(dǎo)致主從不一致,導(dǎo)致數(shù)據(jù)錯亂。主張加上order by PK。
            2. 【高?!恐浦惯\(yùn)用關(guān)聯(lián)子查詢,如update t1 set … where name in(select name from user where…);功率極端低下。
            3. 【強(qiáng)制】禁用procedure、function、trigger、views、event、外鍵約束。由于他們耗費(fèi)數(shù)據(jù)庫資源,下降數(shù)據(jù)庫實例可擴(kuò)展性。推薦都在程序端完成。
            4. 【強(qiáng)制】禁用insert into …on duplicate key update…在高并發(fā)環(huán)境下,會造成主從不一致。
            5. 【強(qiáng)制】制止聯(lián)表更新句子,如update t1,t2 where t1.id=t2.id…。