58家MySQL軍規アップグレード版
3493 ワード
一、基礎規範テーブルストレージエンジンはInnoDB を使用する必要があります.表文字セットデフォルトではutf 8が使用され、必要に応じてutf 8 mb 4 が使用されます.ストレージ・プロシージャ、ビュー、トリガ、Event の使用を禁止は、写真のような大きなファイルをデータベースに格納ことを禁止する、オブジェクトストレージシステムに大きなファイルを格納することができ、データベースにはパス が格納.オンライン環境でのデータベース圧力テストを禁止 テスト、開発、オンラインデータベース環境は 隔離しなければならない.
二、命名規範ライブラリ名、テーブル名、カラム名は小文字で、下線で を区切る必要があります.ライブラリ名、テーブル名、カラム名は、32文字を超えないでください. ライブラリバックアップはbakを接頭辞とし、日付を接尾辞とする でなければならない.ライブラリから-sを接尾辞とする必要があります リポジトリは、-ssを接尾辞とする必要があります 三、表設計規範単一インスタンステーブルの数は、2000個以内の に制御する必要があります.単表分表の個数は1024個以内の に制御しなければならない.テーブルにはプライマリ・キーが必要です.UNSIGNED整数をプライマリ・キー として使用することを推奨します.潜在ピット:プライマリ・キーのないテーブルを削除し、rowモードのプライマリ・スレーブ・アーキテクチャの場合、ライブラリから がマウントされます.外部キーの使用を禁止し、完全性を保証するには、 をアプリケーションによって実現する必要があります.は、大きなフィールド、アクセス頻度の低いフィールドを個別のテーブルに分割して格納、冷熱データ を分離することを提案する.
四、列設計規範は業務区分に応じてtinyint/int/bigintを使用し、それぞれ1/4/8バイトの を占有する.ビジネス区分によるchar/varchar の使用業務区分によるdatetime/timestamp の使用フィールドをNOT NULLとして定義、デフォルト値 を設定する必要があります. INT UNSIGNEDを使用してIPv 4を格納し、char(15) を使用しない varchar(20)を使用して携帯電話番号を格納し、整数 を使用しないでください. ENUM の代わりにTINYINTを使用
五、索引規範ユニークインデックスuniq_を使用[フィールド名]には という名前が付けられています.非一意インデックスidx_を使用[フィールド名]には という名前が付けられています.単一テーブルインデックス数推奨5個以内 結合インデックスフィールドの数は、5つの を超えることは推奨されません.頻繁に更新されるフィールドにインデックス を作成することは推奨されません. JOINクエリを行う必要はなく、JOINクエリを行う場合は、被JOINのフィールドタイプが同じである必要があり、インデックス を作成する.結合インデックスの最左接頭辞の原則を理解し、重複建設インデックスを避ける.(a,b,c)が確立された場合、(a)、(b)、(a,b)、(a,b,c) が確立されたことに相当する.
六、SQL規範 select*の使用を禁止し、必要なフィールド のみを取得します. insertはフィールドを指定する必要があります.insert into T values() の使用を禁止します.暗黙型変換はインデックスを失効させ、全テーブルスキャン を引き起こす. where条件列での関数または式の使用を禁止する 負のクエリおよび%先頭のファジイクエリを禁止 大表JOINとサブクエリ禁止 同じフィールド上のORはINを書き換える必要があり、INの値は50個より少なくなければならない アプリケーションはSQL例外 をキャプチャする必要があります
説明:本軍規は同時量が大きく、データ量が大きい典型的なインターネット業務に適しており、直接参考にすることができ、感謝しない.
:
(1) , , 3 , 1
(2)utf8mb4 utf8 , 4 ,
:
(1) , , ,
(2) , , ,
二、命名規範
:abc,Abc,ABC
:tmp,wushan TM
: , update/delete SQL , ,
: 《 》
四、列設計規範
:
(1) , , char, ,
(2) , , varchar,
: 5 , 4 , YEAR, DATE, datetime
:
(1)NULL , , ,MySQL
(2)NULL
(3)NULL IS NULL IS NOT NULL, =/!=/in/not in
:
(1) , +/-/() , +86
(2)
(3)varchar , like ‘138%’
:ENUM DDL
五、索引規範
:
(1) ,
(2) , , , MySQL
(3) , ES
: 5 row ,
: JOIN , ?
六、SQL規範
:
(1)select * cpu/io/ /
(2)
(3) , ,
: , ,
: ,
: ,
:
説明:本軍規は同時量が大きく、データ量が大きい典型的なインターネット業務に適しており、直接参考にすることができ、感謝しない.