<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 功能強大 支持多語言、二開方便! 廣告
                ## 命名規范 * 庫名、表名、字段名必須使用小寫字母,并采用下劃線分割。 * 庫名、表名、字段名禁止超過32個字符。 * 庫名、表名、字段名見名知意,使用名詞而不是動詞。 * 庫名、表名、字段名,使用常見單詞,避免使用長單詞和生僻詞。 * 表名、字段名應當有注釋,描述該表、字段的用途。 * 表名不使用復數名詞。 ## 表字段設計規范 * 使用InnoDB存儲引擎,表字符集選擇UTF8。 * 使用UNSIGNED存儲非負數值。 * 使用INT UNSIGNED存儲IPV4。 * 使用DECIMAL代替FLOAT和DOUBLE存儲精確浮點數。 * INT類型固定占4字節存儲,例如INT(4)僅代表顯示字符寬度為4位,不代表存儲長度。 * 區分使用TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT數據類型。例如取值范圍為0-80時,使用TINYINT UNSIGNED。 * 建議字段定義為NOT NULL。 * 盡可能不使用TEXT、BLOB類型。 * VARCHAR(N),N表示的是字符數不是字節數,比如VARCHAR(255),可以最大可存儲255個漢字,需要根據實際的寬度來選擇N。 * VARCHAR(N),N盡可能小,因為MySQL一個表中所有的VARCHAR字段最大長度是65535個字節,進行排序和創建臨時表一類的內存操作時,會使用N的長度申請內存。 * 時間字段,除特殊情況一律采用INT來記錄時間戳;使用created\_time表示記錄創建時間、updated\_time表示記錄更新時間。 * 禁止在數據庫中存儲圖片、文件等大數據。 * 表達其實際含義的英文單詞或簡寫。布爾意義的字段以is\_作為前綴,后接動詞過去分詞 * 各表之間相同意義的字段應同名。各表之間相同意義的字段,以去掉模塊前綴的表名\_字段名命名。 * 外鍵字段用表名\_字段名表示其關聯關系。 * 表的主鍵一般都約定成為id,自增類型,是別的表的外鍵均使用xxx\_id的方式來表明。 * 表示開關的字段(0/1),用Tinyint ## 索引 * 表的主鍵的字段名約定為id,自增類型。 * 索引中的字段數建議不超過5個,單張表的索引數量控制在5個以內。 * 索引名稱必須使用小寫。 * 主鍵索引名為pk\_字段名,唯一索引名為uk\_字段名,普通索引名則為idx\_字段名。 * 組合索引建議包含所有字段名,過長的字段名可以采?縮寫形式。 * 禁止冗余索引、禁止重復索引。 * 索引字段的順序需要考慮字段值去重之后的個數,個數多的放在前面。 * ORDER BY,GROUP BY,DISTINCT的字段需要添加在索引的后面。 * 使用EXPLAIN判斷SQL語句是否合理使用索引,盡量避免extra列出現:Using File Soqian,Using Temporary。 * UPDATE、DELETE語句需要根據WHERE條件添加索引。 * 對長度過長的VARCHAR字段建立索引時,添加crc32或者MD5 Hash字段,對Hash字段建立索引。 * 合理創建聯合索引(避免冗余),(a,b,c) 相當于 (a) 、(a,b) 、(a,b,c)。 * 合理使用覆蓋索引減少IO,避免排序。 ## SQL * 使用prepared statement,可以提供性能并且避免SQL注入。 * 避免在SQL語句進行數學運算或者函數運算。 * SQL語句中IN包含的值不應超過1000個。 * 統計表中記錄數時使用COUNT(\*),而不是COUNT(primary\_key)。 * 避免對記錄行數超過1000行的表使用%前導查詢,因為%前導查詢無法利用到索引。 * 非統計類查詢,應避免使用JOIN和子查詢。 * 不使用ORDER BY RAND(),使用其他方法替換。 * 避免使用含業務邏輯的存儲過程、觸發器、函數等。 * WHERE條件中必須使用合適的類型,避免MySQL進行隱式類型轉化 * UPDATE、 DELETE 語句不使用 LIMIT。 ## 使用uuid作為mySQL主鍵 新建一個id字段,不要設置自增,只設置PK,然后建立觸發器,如下。 ~~~ DELIMITER $$ CREATE TRIGGER `id_trigger` --觸發器名稱 BEFORE INSERT --作用時機 ON `hncj_testuuid` --作用于數據表名稱 FOR EACH ROW BEGIN SET new.id=REPLACE(UUID(),'-',''); --邏輯 END -- begin 和 end中間是觸發器定義,可以寫到phpmyadmin中間 ~~~
                  <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>

                              哎呀哎呀视频在线观看