MySQL の設計仕様と原則

May 11, 2020 am 11:13 AM
mysql

MYSQL データベース設計仕様

1. データベース命名仕様

26 個の英字を使用します (サイズに依存します)。書かれている)と 0 ~ 9 の自然数(多くの場合は必要ありません)とアンダースコア '_';

名前は簡潔かつ明確である必要があります (長さは 30 文字を超えることはできません);

例: user、stat 、log。 wifi_user、wifi_stat、wifi_log というプレフィックスをデータベースに追加することもできます。

バックアップ データベースでない場合は、0 ~ 9 の自然数を追加できます: user_db_20151210 ;

2. データベーステーブル名 命名規則

は、26 文字の英字 (大文字と小文字を区別) と 0 ~ 9 の自然数 (多くの場合は不要) とプラスで構成されます。アンダースコア「_」;

名前は簡潔かつ明確です。複数の単語はアンダースコア「_」で区切られます;

例: user_login、user_profile、user_detail、user_role、user_role_relation、

user_role_right、user_role_right_relation

テーブル接頭辞「user_」は有効です 同じ関係を持つテーブルをまとめて表示します;

3. データベース テーブル フィールド名の命名規則

は 26 個の英字 (大文字と小文字を区別) と 0 ~ 9 を使用します。これは自然数 (多くの場合は必要ありません) とアンダースコア '_' で構成されます。

名前は簡潔かつ明確であり、複数の単語はアンダースコア「_」で区切られます;

例: user_login テーブルのフィールド user_id、user_name、pass_word、eamil、tickit、status、mobile、add_time;

各テーブルには、自動インクリメント主キー、add_time (デフォルトのシステム時間)

テーブル間で関連付けられたフィールド名は、できるだけ同一である必要があります;

4. データベース テーブルのフィールド タイプの仕様

データを 1 つのフィールドに保存するために使用する記憶域スペースはできるだけ少なくしてください。

例: int を使用できる場合は、varchar、char を使用しないでください。varchar を使用できる場合は、varchar を使用しないでください。 (16)、varchar(256) は使用しないでください;

IP アドレスには int 型を使用するのが最善です;

固定長型には char を使用するのが最善です。次に例を示します。郵便番号;

tinyint を使用できる場合は、smallint、int は使用しないでください。

各フィールドにデフォルト値を与えることが最善であり、null にしないことが最善です;

5. データベース テーブル インデックスの仕様

名前は簡潔かつ明確です。例: user_login テーブルの user_name フィールドのインデックスは、user_name_index の一意のインデックスである必要があります。

はそれぞれの一意のインデックスです。テーブルの主キー インデックスを作成します。

各テーブルに適切なインデックスを作成します。

複合インデックスを確立するときは注意してください。

6. データベース パラダイムを理解するだけです

第一正規形 (1NF): フィールド値はアトミックであり、分割できません (すべてのリレーショナル データベース システムは次の条件を満たします)第一正規形);

例: 名前フィールド、姓と名は全体です。姓と名を区別したい場合は、2 つの独立したフィールドを設定する必要があります。

第 2 正規形 (2NF): テーブルには主キーが必要です。つまり、データの各行を一意に区別できます。

備考: 最初に第 1 正規形が満たされる必要があります。

第 3 正規形 (3NF): テーブルには、他の関連テーブルの非キー フィールドに関する情報を含めることはできません。つまり、データ テーブルに冗長なフィールドを含めることはできません。;

備考: 2 番目正規形は最初に満たされる必要があります;

データベースの 3 番目の正規形:

①フィールドは分離できません。

②主キーがあり、主キー以外のフィールドは主キーに依存します。

③主キー以外のフィールドは相互に依存できません。

#MYSQL データベース設計原則

#1. 基本原則

#MYSQL データベース設計原則では操作を実行しないでください。データベース;

CPU 計算をビジネス レイヤーに移動する必要があります;

列数を制御します (フィールド数は少なく正確です。フィールド数は 20 以内にすることをお勧めします) ;

パラダイムと冗長性のバランスを取る (効率を優先し、しばしばパラダイムを犠牲にする)

3B を拒否する (大きな SQL ステートメントを拒否する: 大きな SQL、大きなものを拒否する: 大きなトランザクション、大きなバッチを拒否する: 大きなバッチ) ;

2、フィールド クラスの原則

数値型を適切に使用します (スペースを節約するために適切なフィールド型を使用します);

文字は数値に変換されます (最適な変換が可能になり、スペースも節約され、クエリのパフォーマンスも向上します) ;

NULL フィールドの使用は避けてください (NULL フィールドはクエリと最適化が難しく、NULL フィールドのインデックスには余分なスペースが必要で、NULL の複合インデックスは必要です)フィールドは無効です);

テキスト タイプの使用頻度を下げます (テキスト フィールドの代わりに varchar を使用するようにしてください);

3. インデックスの原則

インデックスを使用する合理的に (クエリを改善し、更新を遅くするには、インデックスが多いほど良いです);

文字フィールドはプレフィックス インデックスを構築する必要があります;

インデックスに対して列操作を実行しないでください;

Innodb の主キーは自動インクリメント列の使用を推奨します (主キーはクラスター化インデックスを作成します。主キーは変更しないでください。文字列を主キーにするべきではありません) (Innodb のインデックス ストレージ構造を理解していればわかるでしょう) ;

外部キーは使用されません (プログラムによって保証されています);

4. SQL クラスの原則

SQL ステートメントは可能な限り単純です(1 つの SQL は 1 つの CPU でのみ操作でき、大きなステートメントはロック時間を短縮するために小さなステートメントに分割され、1 つの大きな SQL はライブラリ全体をブロックする可能性があります。);

単純なトランザクション ;

回避するtrig/func を使用します (トリガーと関数はクライアント プログラムによって置き換えられません);

select * は使用しないでください (CPU、IO、メモリ、帯域幅を消費するため、この種のプログラムはスケーラブルではありません);

OR は IN として書き換えられます (or の効率は n レベルです);

OR は UNION として書き換えられます (mysql インデックスのマージは非常に遅れます);

select id from t where phone = ’159′ or name = ‘john’;
ログイン後にコピー

=>

select id from t where phone=’159′
union
select id from t where name=’jonh’
ログイン後にコピー

負の % は避けてください;

count(*) は注意して使用してください;

効率的なページングを制限してください (制限が大きいほど効率は低くなります);

Union ではなく Union all (union には重複排除のオーバーヘッドがあります);

結合の使用を減らします;

グループ化を使用します;

同じ型の比較を使用してください;

バッチバッチ更新;

5. パフォーマンス分析ツール

show profile;

mysqlsla;

mysqldumpslow;

説明;

遅いログを表示;

プロセスリストを表示;

推奨チュートリアル: 「MySQL チュートリアル

以上がMySQL の設計仕様と原則の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MySQL:初心者向けのデータ管理の容易さ MySQL:初心者向けのデータ管理の容易さ Apr 09, 2025 am 12:07 AM

MySQLは、インストールが簡単で、強力で管理しやすいため、初心者に適しています。 1.さまざまなオペレーティングシステムに適した、単純なインストールと構成。 2。データベースとテーブルの作成、挿入、クエリ、更新、削除などの基本操作をサポートします。 3.参加オペレーションやサブクエリなどの高度な機能を提供します。 4.インデックス、クエリの最適化、テーブルパーティション化により、パフォーマンスを改善できます。 5。データのセキュリティと一貫性を確保するために、バックアップ、リカバリ、セキュリティ対策をサポートします。

NAVICATでデータベースパスワードを取得できますか? NAVICATでデータベースパスワードを取得できますか? Apr 08, 2025 pm 09:51 PM

NAVICAT自体はデータベースパスワードを保存せず、暗号化されたパスワードのみを取得できます。解決策:1。パスワードマネージャーを確認します。 2。NAVICATの「パスワードを記憶する」機能を確認します。 3.データベースパスワードをリセットします。 4.データベース管理者に連絡してください。

Navicatプレミアムの作成方法 Navicatプレミアムの作成方法 Apr 09, 2025 am 07:09 AM

NAVICATプレミアムを使用してデータベースを作成します。データベースサーバーに接続し、接続パラメーターを入力します。サーバーを右クリックして、[データベースの作成]を選択します。新しいデータベースの名前と指定された文字セットと照合を入力します。新しいデータベースに接続し、オブジェクトブラウザにテーブルを作成します。テーブルを右クリックして、データを挿入してデータを挿入します。

MySQLでテーブルをコピーする方法 MySQLでテーブルをコピーする方法 Apr 08, 2025 pm 07:24 PM

MySQLでテーブルをコピーするには、新しいテーブルの作成、データの挿入、外部キーの設定、インデックスのコピー、トリガー、ストアドプロシージャ、および機能が必要です。特定の手順には、同じ構造を持つ新しいテーブルの作成が含まれます。元のテーブルからデータを新しいテーブルに挿入します。同じ外部キーの制約を設定します(元のテーブルに1つがある場合)。同じインデックスを作成します。同じトリガーを作成します(元のテーブルに1つがある場合)。同じストアドプロシージャまたは関数を作成します(元のテーブルが使用されている場合)。

MariadBのNAVICATでデータベースパスワードを表示する方法は? MariadBのNAVICATでデータベースパスワードを表示する方法は? Apr 08, 2025 pm 09:18 PM

Passwordが暗号化された形式で保存されているため、MariadbのNavicatはデータベースパスワードを直接表示できません。データベースのセキュリティを確保するには、パスワードをリセットするには3つの方法があります。NAVICATを介してパスワードをリセットし、複雑なパスワードを設定します。構成ファイルを表示します(推奨されていない、高リスク)。システムコマンドラインツールを使用します(推奨されません。コマンドラインツールに習熟する必要があります)。

MySQL:簡単な学習のためのシンプルな概念 MySQL:簡単な学習のためのシンプルな概念 Apr 10, 2025 am 09:29 AM

MySQLは、オープンソースのリレーショナルデータベース管理システムです。 1)データベースとテーブルの作成:createdatabaseおよびcreateTableコマンドを使用します。 2)基本操作:挿入、更新、削除、選択。 3)高度な操作:参加、サブクエリ、トランザクション処理。 4)デバッグスキル:構文、データ型、およびアクセス許可を確認します。 5)最適化の提案:インデックスを使用し、選択*を避け、トランザクションを使用します。

NAVICATは、MySQL/Mariadb/PostgreSQLおよびその他のデータベースに接続できません NAVICATは、MySQL/Mariadb/PostgreSQLおよびその他のデータベースに接続できません Apr 08, 2025 pm 11:00 PM

NAVICATがデータベースとそのソリューションに接続できない一般的な理由:1。サーバーの実行ステータスを確認します。 2。接続情報を確認します。 3.ファイアウォール設定を調整します。 4.リモートアクセスを構成します。 5.ネットワークの問題のトラブルシューティング。 6.許可を確認します。 7.バージョンの互換性を確保します。 8。他の可能性のトラブルシューティング。

NAVICATでSQLを実行する方法 NAVICATでSQLを実行する方法 Apr 08, 2025 pm 11:42 PM

NAVICATでSQLを実行する手順:データベースに接続します。 SQLエディターウィンドウを作成します。 SQLクエリまたはスクリプトを書きます。 [実行]ボタンをクリックして、クエリまたはスクリプトを実行します。結果を表示します(クエリが実行された場合)。

See all articles