<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [TOC] ## 使用場景 **數據量大、并發量高場景**,在線數據庫屬性擴展 ## 不推薦方案 1. `alter table add column` 要堅持這個方案的,也不多解釋了,大數據高并發情況下,一定不可行 2. 通過增加表的方式擴展,通過外鍵join來查詢 大數據高并發情況下,join性能較差,一定不可行 3. 通過增加表的方式擴展,通過視圖來對外 一定不可行。大數據高并發情況下,互聯網不怎么使用視圖,至少58禁止使用視圖 4. 必須遵循“第x范式”的方案 一定不可行。互聯網的**主要矛盾之一是吞吐量**,為了保證吞吐量甚至可能犧牲一些事務性和一致性,通過反范式的方式來確保吞吐量的設計是很常見的,例如:冗余數據。互聯網的**主要矛盾之二是可用性**,為了保證可用性,常見的技術方案也是數據冗余。在互聯網數據庫架構設計中,第x范式真的沒有這么重要 ## 推薦方案 “新表+觸發器+遷移數據+rename”方案(pt-online-schema-change),這是業內非常成熟的擴展列的方案 基本原理是: 1. 先創建一個擴充字段后的新表user_new(uid, name, passwd, age, sex) 2. 在原表user上創建三個觸發器,對原表user進行的所有insert/delete/update操作,都會對新表user_new進行相同的操作 3. 分批將原表user中的數據insert到新表user_new,直至數據遷移完成 4. 刪掉觸發器,把原表移走(默認是drop掉) 5. 把新表user_new重命名(rename)成原表user 擴充字段完成。 ### 優點 整個過程不需要鎖表,可以持續對外提供服務 ### 注意事項 1. 變更過程中,最重要的是沖突的處理,一條原則,以觸發器的新數據為準,這就要求被遷移的表必須有主鍵(這個要求基本都滿足) 2. 變更過程中,寫操作需要建立觸發器,所以如果原表已經有很多觸發器,方案就不行(互聯網大數據高并發的在線業務,一般都禁止使用觸發器) 3. 觸發器的建立,會影響原表的性能,所以這個操作建議在流量低峰期進行
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看