<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 功能強大 支持多語言、二開方便! 廣告
                **太多的列** mysql的存儲引擎API工作時需要在服務器層和存儲引擎層之間通過行緩存格式拷貝數據,然后在服務層將緩存內容解碼成各個列.從行緩沖中將編碼過的列轉換成行數據結構的操作代價是非常高的 myisam的定長行結構實際上與服務層的行結構正好匹配,所以不需要轉換.然而myisam的變長行結構和Innodb的行結構則總是需要轉換.轉換的代價依賴于列的數量 **太多的關聯** 所謂的"實體-屬性-值"(ENV)設計模式是一個常見的糟糕設計模式,尤其在mysql下不能靠譜的工作.mysql限制了每個關聯操作最多只能有61張表,但是ENV數據庫需要很多自關聯. 事實上在許多關聯少于61張表的情況下,解析和優化查詢的代價也會成為mysql的問題 **全能的枚舉** 注意防止過度使用枚舉(ENUM) ~~~ create table ... ( country enum('','0','1','2',...'31') ~~~ 這種模式的表設計非常凌亂.這么使用枚舉值類型也會在任何支持枚舉類型的數據庫都是一個有問題的設計方案,這里應該用整數作為外鍵關聯到字典表或者查找表來查找具體值 但是在mysql中,當需要在枚舉列表中增加一個新的國家時就要做一次ALTER TABLE操作,在mysql5.0以及更早的版本中ALTER TABLE是一個阻塞操作,即使在5.1和更新的版本中,如果不是在列表的末尾增加值也會一樣需要ALTER TABLE **變相的枚舉** 枚舉(ENUM)列允許在列中存儲一組定義值中的單個值,集合(SET)列則允許在列中存儲一組定義值中的一個或多個值.有時候這可能比較容易導致混亂.這是一個例子 ~~~ create table ... ( is_default set('Y', 'N') NOT NULL default 'N' ~~~ 如果這里真和假兩種情況不會同時出現,那么毫無疑問應該使用枚舉列代替集合列 **非此發明的NULL** 寫了避免使用NULL的好處,并且建議盡可能考慮替代方案 即使需要存儲一個事實上的"空值"到表中,也不一定非得使用NULL.也許可以使用0,某個特殊值,或者空字符串作為代替 但是遵循這個原則也不要走極端.當確實需要表示未知值時也不要害怕使用null,在一些場景中,使用null可能會比某個神奇常數更好.從特定類型的值域中選擇一個不可能的值.例如使用-1代表一個未知的整數,可能導致代碼復雜很多,并容易引入bug,還可能會讓事情變得一團糟.處理null確實不容易,但有時候會比他的替代方案更好 下面是我們經常看到的例子 ~~~ create table .. ( dt datetime not null default '0000-00-00 00:00:00' ~~~ 偽造的全0值可能導致很多問題(可以配置mysql的sql_mode來禁止不可能的日期,對于新應用這是個非常好的實踐經驗,它不會讓創建的數據庫里充滿不可能的值).值得一提的是,mysql會在索引中存儲NULL值,而Oracle則不會
                  <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>

                              哎呀哎呀视频在线观看