Mysqlデータベースに関する知識のまとめ
2017年6月8日、天気は曇りでした。気分は晴れています。
昨夜は、長い間連絡を取っていなかった中学校の同級生の夢を見て、朝の通勤中に話しました。少女は現在、美しい景色が広がる貴州省に出張中だ。私は「あなたは今とても豊かな生活を送っていますね」と言いました。女の子は「それはあなたが私の潤っていない部分を見ていないからです」と言った。実際、人生において、私たちは常に自分の明るい面を他人に見せ、虐げられた面を「隠し」ます。
昨日、ブロガーがブログで私に質問をし、私を「偉大な神」とさえ呼んだので、私はこの「偉大な神」とは程遠いことをよく知っていたので、とてもパニックになりました。 「偉大な神」という目標に向かって私の努力と努力を続けます。
ブロガーの質問は、データ エンジン と データ テーブルの修復と最適化 ステートメントを含む MySQL データベースに関するものですが、私はこれらの問題をこれまで考慮したことがなく、ましてや使用したこともありませんでした。そこで、それを理解するためにいくつかの情報を検索したので、見つけた情報を次のように要約します。
1. Mysql データベース ストレージ エンジン
コンセプト:
ストレージ エンジンは、実際にはデータを保存する方法、保存されたデータにインデックスを付ける方法、データを更新する方法、データをクエリする方法、およびその他の技術的な実装方法です。 MySQL のデータは、さまざまな異なるテクノロジを使用してファイル (またはメモリ) に格納されます。これらのテクノロジはそれぞれ、異なるストレージ メカニズム、インデックス作成手法、ロック レベルを使用し、最終的には幅広いさまざまな機能と機能を提供します。 MySQL では、これらのさまざまなテクノロジとサポートされる関連機能をストレージ エンジンと呼びます。
(1) innoDB ストレージ エンジン
①innodb ストレージ エンジンの mysql テーブルは、トランザクション、ロールバック、システム クラッシュ修復機能と、マルチバージョン同時実行制御のトランザクション セキュリティを提供します。
②innodb は自動インクリメント列 (auto_increment) をサポートしています。自動インクリメント列の値が空である場合、既存の値よりも大きい場合はどうすればよいでしょうか。現在の値を保存するだけです。
③innodbストレージエンジンは外部キーをサポートしています。外部キーが配置されているテーブルは子テーブル(またはスレーブテーブル)と呼ばれ、それが依存するテーブルは親テーブル(またはメインテーブル)と呼ばれます。
④innodb ストレージ エンジンで最も重要なことは、トランザクションとトランザクション関連の機能をサポートしていることです。
⑤innodbストレージエンジンはmvcc行レベルロックをサポートします。
⑥innodbストレージエンジンインデックスはB+Treeを使用します。
(2) MyISAM ストレージ エンジン
1) MyISAM このストレージ エンジンはトランザクションをサポートせず、行レベルのロックをサポートせず、同時挿入されたテーブル ロックのみをサポートします。主に高負荷の選択に使用されます。
2) MyISAM タイプ テーブルは、静的、動的、圧縮の 3 つの異なるストレージ構造をサポートします。
①静的型: は、定義されたテーブル列のサイズが固定されていることを意味します (つまり、xblob、xtext、varchar などの可変長データ型が含まれていない)。そのため、mysql は自動的に静的な myisam 形式。
静的形式を使用したテーブルのパフォーマンスは、メンテナンス中やアクセス中に所定の形式でデータを保存するために必要なオーバーヘッドが非常に低いため、比較的高くなります。ただし、この高いパフォーマンスはスペースと引き換えに得られます。スペースは定義時に固定されるため、列内の値がどんなに大きくても、最大値が優先してスペース全体を占有します。
②動的タイプ: 列が (列が 1 つしかない場合でも) 動的 (xblob、xtext、varchar およびその他のデータ型) として定義されている場合、myisam は自動的に動的タイプを使用します。
動的テーブルは静的テーブルよりも占有するスペースが少なくなりますが、フィールドの内容が変更されるとその位置を移動する必要が生じ、断片化が発生する可能性が高いため、パフォーマンスが低下します。データの変更が増えると断片化が増加し、それに応じてデータ アクセスのパフォーマンスが低下します。フラグメントによるデータ アクセスを減らすには、2 つの解決策があります:
A. 可能な限り静的データ型を使用します。
b. テーブルの最適化ステートメントを頻繁に使用し、テーブルの更新と削除によって失われた領域を回復します。
ストレージ エンジンがテーブルの最適化をサポートしていない場合は、データをダンプして再ロードすることができ、これにより断片化を軽減することもできます。
③
圧縮タイプ:このデータベースで作成されたテーブルがライフサイクル全体を通じて読み取り専用である場合、この場合、占有スペースを削減するために myisam の圧縮テーブルが使用されます。 3) MyISAM も B+tree インデックスを使用しますが、具体的な実装は Innodb とは少し異なります。
(3) メモリストレージエンジン
①メモリ ストレージ エンジンは、これまでのストレージ エンジンとは少し異なり、メモリに保存されたデータを使用してテーブルを作成し、すべてのデータもメモリに保存されます。
②メモリストレージエンジンに基づく各テーブルは、実際にはディスクファイルに対応しており、ファイル名とファイルのテーブル名は同じで、タイプは.frmです。このファイルにはテーブルの構造のみが保存され、そのデータ ファイルはメモリに保存されるため、データの高速処理が容易になり、テーブル全体の処理能力が向上します。
③メモリストレージエンジンはデフォルトでハッシュ(HASH)インデックスを使用します。これはB+Treeを使用するよりも高速です。読者がB-treeを使用したい場合は、作成時にそれを参照できます。
④メモリストレージエンジンのファイルデータはメモリに保存されており、mysqldプロセスで例外が発生した場合、マシンを再起動またはシャットダウンするとデータが消えます。したがって、メモリ ストレージ エンジン内のテーブルのライフ サイクルは非常に短く、通常は 1 回しか使用されません。
(4) BlackHole ストレージ エンジン (ブラック ホール エンジン)
トランザクションと mvcc 行レベルのロックをサポートします。このストレージ エンジンは、主にログ記録または同期アーカイブに使用されます。
2. MySQL でのテーブルの最適化と修復
mysql を長期的に使用すると、最適化中にテーブルを修復することで、占有されるディスク領域を削減し、バックアップを容易にすることができます。
REPAIR TABLE `table_name` テーブルを修復します OPTIMIZE TABLE `table_name` テーブルを最適化します
REPAIR TABLE - 破損したテーブルを修復するために使用されます。
OPTIMIZE TABLE—アイドル状態のデータベース領域を再利用するために使用されるテーブルを最適化します。テーブル上のデータ行が削除されても、占有されていたディスク領域はすぐには再利用されず、OPTIMIZE TABLE コマンドを使用すると、領域が再利用され、ディスク上のデータ行が再配置されます。
注: これはデータベースではなくディスク上にあります。
ほとんどの場合、OPTIMIZE TABLE を実行する必要はありません。データ行をバッチで削除した後、データ テーブルの最適化操作を定期的に (週に 1 回または月に 1 回) 実行するだけで済みます。テーブル。
以上がMysqlデータベースに関する知識のまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホット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データベースでは、ユーザーとデータベースの関係は、アクセス許可と表によって定義されます。ユーザーには、データベースにアクセスするためのユーザー名とパスワードがあります。許可は助成金コマンドを通じて付与され、テーブルはCreate Tableコマンドによって作成されます。ユーザーとデータベースの関係を確立するには、データベースを作成し、ユーザーを作成してから許可を付与する必要があります。

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

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

次のコマンドでmysqlデータベースを表示します。サーバーに接続します:mysql -u username -pパスワードrun showデータベース。すべての既存のデータベースを取得するコマンド[データベース]を選択します。データベース名を使用します。テーブルを表示:表を表示します。テーブル構造を表示:テーブル名を説明してください。データを表示:[テーブル名]から[ *]を選択します。

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

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

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

MySQLのコピーと貼り付けには、次の手順が含まれています。データを選択し、Ctrl C(Windows)またはCMD C(MAC)でコピーします。ターゲットの場所を右クリックして、貼り付けまたはCTRL V(Windows)またはCMD V(MAC)を使用します。コピーされたデータは、ターゲットの場所に挿入されるか、既存のデータを置き換えます(データが既にターゲットの場所に存在するかどうかに応じて)。
