MySQL パフォーマンスの最適化により、データベースの実行が高速化されます。
データベースの最適化作業では、データをできるだけ小さくし、テーブルがハードディスク上で占有するスペースをできるだけ少なくすることが、最も一般的に使用され、最も効果的な方法の 1 つです。データが削減されるため、ハードディスクの読み取りおよび書き込み速度が相対的に向上し、クエリ プロセス中の小さなテーブルのコンテンツ処理に使用されるシステム リソースが少なくなります。同様に、インデックスが小さい列に設定されている場合、インデックスが占有するリソースは少なくなります。では、データベース管理者はどのようにして自分のデータを軽量化できるでしょうか?これについて著者は次のような提案をしています。
提案 1: Null 値は必ずしもスペースを占有しないわけではありません
ここで、著者はまず全員に教育します。データベース管理者の中には、NULL 値がシステム リソースを占有しないと信じている人もいます。実際、これは誤った理解です。データベースを設計するとき、彼らはフィールドのプロパティを NOT NULL に設定することを好みません。ユーザーが必要に応じてデータを入力できるようにします。著者は、このアプローチはデータベースのパフォーマンスに悪影響を与えると考えています。私の意見としては、可能であれば列を NOT NULL に設定するようにしてください。つまり、NULL 値は許可されません。そうすることで、後続の処理が高速化されると同時に、データ ストレージの観点から列ごとに 1 ビットを節約できるため、データの軽量化という目的を達成できます。実際の作業では、ユーザーがデータを入力する必要がない状況がある場合は、空ではない目的を達成するためにデフォルトのフィールドを使用することもできます。たとえば、給与システムでは、ユーザーの勤務年数をデフォルトで空白ではなく 0 に設定できます。もちろん、本当に NULL が必要な場合は、方法がありません。ただし、データベース エンジニアとしては、NULL 値の使用を避けるように努める必要があります。
提案 2: できるだけ小さいデータ型を使用しますデータ型のサイズは、基になるテーブルのサイズにも影響します。たとえば、MEDIUMINT と INT の 2 つのデータ型は整数データの保存に使用できますが、保存できる精度は異なります。ただし、データを保存するという観点から見ると、前者は後者よりも約 25% 少ないストレージ容量を必要とします。このため、MEDIUMINT が使用できる場合は INT を使用しないでください。
また、データ長を定義する際は、ニーズに合わせてできるだけ短くする必要があります。たとえば、給与評価システムには従業員コーディングのフィールドがあります。企業の従業員コードが決定されている場合、それは 5 文字で構成されます。その後、フィールドを定義するときに、5 文字の長さを定義するだけで済みます。これにより、ストレージスペースを削減できるだけでなく、特定のデータ校正機能も果たすことができます。ユーザーが入力したコード長が5桁を超える場合はデータを保存できません。
特定のデータを保存するときに選択できるデータ型は数多くありますが、比較的多数の文字を定義することもできます。ただし、できるだけ小さいデータ型を選択すると、データの保存スペースを削減し、データの軽量化という目的を達成するのに役立ちます。これにより、データベースのパフォーマンスがさらに向上します。
提案 3: インデックスとデータテーブルのサイズの関係著者は記事の冒頭で、より小さい列にインデックスを設定すると、インデックスが占有するリソースも少なくなると述べました。インデックスとデータテーブルのサイズも密接に関係していることがわかります。適切なインデックスを適切な場所に適切なタイミングで設定することで、データの軽量化という目的も達成できます。 通常、各データテーブルには複数のインデックスがある場合がありますが、多くの場合、メインインデックスは 1 つだけです。このため、各テーブルのメイン インデックスはできるだけ短く簡潔にする必要があります。これにより、データベースがより迅速に識別できるようになります。 もう 1 つの例は、可能な限りプレフィックスにインデックスを付けることです。たとえば、現在テーブルがある場合、特定の列にインデックスを設定する必要があります。そして、この列には特徴があり、最初の数文字に一意の接頭辞が付いています。この場合、すべてのプレフィックスではなく、このプレフィックスにしっかりとインデックスを付ける方がよいでしょう。 MySQL データベースでは、文字列の左端にインデックスを作成することがサポートされています。これは、データベースが特定のルールに従ってフィールドを 2 つの部分に分割することを意味します。分割後も前部分のデータを一意に保つことができる場合は、前部分にインデックスを設定するだけでよく、フィールド全体のデータにインデックスを設定する必要はありません。これにより、間違いなくインデックスが占有するリソースを削減し、減量の目的を達成できます。インデックスが短いほど、クエリ速度が速くなります。必要なハード ドライブのスペースが少なくなり、インデックス キャッシュにより多くのアクセスが節約されるためです。これにより、ハードディスクの検索回数が減り、クエリの効率が向上します。 最後に注意すべきことは、インデックスを悪用することはできないということです。インデックスを使用すると確かにデータ処理能力が向上しますが、インデックスにより追加のオーバーヘッドも発生します。メリットがオーバーヘッドよりも大きい場合にのみ、インデックスを使用してデータベースのパフォーマンスを向上させることができます。そうしないと逆効果になります。たとえば、テーブルを迅速に保存する必要がある場合、テーブルに設定されているインデックスが多すぎると、インデックスに副作用が生じます。この点に関して、著者は、主に検索列の組み合わせを通じてテーブルにアクセスする場合、インデックスを 1 つだけ設定するのが最善であると提案しています。もちろん、このインデックス部分は日常業務で最もよく使用される列であるはずです。複数のインデックスを使用する必要がある場合の最後の手段として、より多くのコピーを持つ列を使用してインデックス圧縮を向上させることが最善です。これにより、複数のインデックスの使用によるリソース消費の増加が軽減されます。 提案4: まだ「ふっくら」する必要がある部分を節約できません 女性は痩せるべきところは痩せて、ふっくらすべきところはふっくらしていなければなりません。実際、データベースにも同じことが当てはまります。ハードドライブのスペースを節約できる場合は、必ず保存してください。そして、節約できないものは、体重を減らすために合理化することはできません。場合によってはこれが裏目に出ることもあります。 著者は Varchar を例に挙げています。 MyISAM と同様、可変長列がない場合は、固定サイズのデータ型を使用することをお勧めします。固定長のデータ型が使用されますが、多くの場合、一定量の記憶領域が無駄になります。ユーザーが入力したデータが不十分で固定長が使用されている場合でも、データはこの固定長で保存されるためです。ただし、この場合、固定長を使用できる場合でも、固定長を使用する必要があります。この場合、ある程度のハードディスク容量が無駄になりますが、データのクエリ速度を向上させることができるためです。 データの軽量化では、どのような状況でもデータベースのパフォーマンスを向上させることはできないことがわかります。これは経費を削減して収益を増やすようなもので、この節約は最先端で節約されるべきです。そうしないと、お金を節約できないだけでなく、自分自身を傷つけることになります。平たく言えば、痩せるべきところは痩せて、ふっくらすべきところはふっくらするということです。この文だけ覚えておいてください。 提案 5: 減量目的を達成するためにテーブルを分割します アリが食べ物を移動させるとき、食べ物が大きすぎて移動できない場合、アリは移動できるようになるまで食べ物を分割することがあります。これがケーキを分割する原理です。実際、この現象は日常業務でもよく見られます。たとえば、データベース テーブルがある場合、そこに多数のレコードがある場合、テーブルの許容速度は非常に遅くなります。この場合、テーブルは特定のルールに基づいて複数のワークブックに分割できます。たとえば、現在、企業の従業員の勤怠情報のコピーが存在します。このテーブルのクエリ、並べ替え、およびカウントを行うと、待ち時間が非常に長くなります。この時点で、部門ごとに異なるワークブックに分割し、それらに対して関連するデータ分析を実行できます。このとき、ワークロードは大きくなりますが、処理速度ははるかに速くなります この原則によれば、データベースを最適化するときは、頻繁にスキャンされる大きなテーブルを 2 つ以上の表現に分割することが非常に有益です。たとえば、日常業務では現在、動的フォーマットのデータテーブルがあり、このデータがスキャンテーブルを使用している場合、これを使用して、比較的小さな静的フォーマットテーブル内の関連する行を検索します。 このテーブルの分割により、大きなケーキをいくつかの小さなケーキに分割して、その後のデータ統計と分析を容易にすることができます。もちろん、このエフェクトの質はこの分割のルールに直接関係します。望ましい効果を達成するためにテーブルを分割する方法については、これも比較的大きなトピックです。ここではスペースが限られているため、著者は多くの説明を省略します。おそらく今後の記事で、著者はこの命題をさらに詳しく説明するでしょう。 上記は、データベースの実行を高速化するための MySQL パフォーマンスの最適化の内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

次の手順でphpmyadminを開くことができます。1。ウェブサイトコントロールパネルにログインします。 2。phpmyadminアイコンを見つけてクリックします。 3。MySQL資格情報を入力します。 4.「ログイン」をクリックします。

MySQLとSQLは、開発者にとって不可欠なスキルです。 1.MYSQLはオープンソースのリレーショナルデータベース管理システムであり、SQLはデータベースの管理と操作に使用される標準言語です。 2.MYSQLは、効率的なデータストレージと検索機能を介して複数のストレージエンジンをサポートし、SQLは簡単なステートメントを通じて複雑なデータ操作を完了します。 3.使用の例には、条件によるフィルタリングやソートなどの基本的なクエリと高度なクエリが含まれます。 4.一般的なエラーには、SQLステートメントをチェックして説明コマンドを使用することで最適化できる構文エラーとパフォーマンスの問題が含まれます。 5.パフォーマンス最適化手法には、インデックスの使用、フルテーブルスキャンの回避、参加操作の最適化、コードの読み取り可能性の向上が含まれます。

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

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

手順に従って、NAVICATで新しいMySQL接続を作成できます。アプリケーションを開き、新しい接続(CTRL N)を選択します。接続タイプとして「mysql」を選択します。ホスト名/IPアドレス、ポート、ユーザー名、およびパスワードを入力します。 (オプション)Advanced Optionsを構成します。接続を保存して、接続名を入力します。

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

データベースに接続するときの一般的なエラーとソリューション:ユーザー名またはパスワード(エラー1045)ファイアウォールブロック接続(エラー2003)接続タイムアウト(エラー10060)ソケット接続を使用できません(エラー1042)SSL接続エラー(エラー10055)接続の試みが多すぎると、ホストがブロックされます(エラー1129)データベースは存在しません(エラー1049)
