ビッグデータ学習パート 2 MYSQL 上級
#記事ディレクトリ
- 5 MySQL アーキテクチャ
-
- 5.1 MyISAM
- 5.2 Innodb
-
- 5.2.1 システム テーブル スペースと独立テーブル スペースのどちらを選択するか
- 5.2.2 Innodb ストレージ エンジンの機能
- 5.2.3 Innodb ステータス チェック
- 5.2.4 該当するシナリオ
- 5.2.4 (拡張) ロックとは
- 5.2.3.1 とはロック?
- 5.2.3.2 ロックの種類:
- 5.2.3.3 書き込みロックと読み取りロックの互換関係(1行の互換性)
- 5.2.3.4 ロック粒度 :
- 5.2.3.5 ブロッキングとデッドロック
- ##5.3. 1 CSV ストレージ エンジンの特徴
- 5.3.2 CSV ストレージ エンジンの適用可能なシナリオ
- ##5.4 アーカイブ ストレージ エンジン
##5.4 .1 ファイル システム ストレージ機能- 5.4.2 アーカイブ ストレージ エンジンの機能
-
- 5.4.3 アーカイブ ストレージ エンジンの使用シナリオ
- ##5.5 メモリ ストレージ エンジン
- 5.5.2 メモリの機能特性
- 5.5.3 混同されやすいメモリの概念
- 5.5.4 メモリ使用シナリオ
- 5.6 Federated Storage Engine
- 5.6.2 Federated の使用方法
- 5.6.3 Federated の適用可能なシナリオ
- 6 正しいストレージ エンジンの選択方法
次に、より一般的に使用されるストレージをいくつか選択します エンジンの簡単な説明 ストレージ エンジンmysql で使用されるデータはデータベースのパフォーマンスに直接影響しますので、ストレージ エンジンを使用する前にストレージ エンジンの特性をよく理解していただければ幸いです。
5.1 MyISAM
MyISAM は、MySQL5.5 より前のデフォルトのストレージ エンジンでした。このため、MyISAM ストレージ エンジンを使用するサーバーは依然として多数存在します。同時に、MyISAM は現在、多くのシステム テーブルと一時テーブルで使用されるストレージ エンジンです。ここで言及されている一時テーブルは、
を通じて作成されるテーブルではなく、作成中に使用されるデータの量を指します。ソートやグループ化などの操作一定のサイズを超えると、クエリ オプティマイザーによって一時テーブルが作成されます。 MyISAM ストレージ エンジンは、MYD と MYI で構成されます。MYD はデータ ファイルの拡張子で、MYI はインデックス ファイルの拡張子です。このストレージ エンジンは、これら 2 つの拡張子を持つデータ ファイルとインデックス ファイルにテーブルを格納します。
機能:同時実行性とロック レベル
MyISAM は、行レベルのロックではなくテーブル レベルのロックを使用します。つまり、テーブル内のデータは変更時に、テーブル全体をロックする必要があり、テーブルを読み取るときに共有ロックもすべてのテーブルに追加されます。ここから、MyISAM をエンジンとして使用するテーブルの読み取りおよび書き込み操作が相互に排他的であることがわかります。 MyISAM は同時読み取りおよび書き込み操作があまり得意ではないことがわかります。読み取り専用操作のみの場合、共有ロックは共有ロックをブロックしないため、同時実行性の点ではパフォーマンスは悪くありません。
テーブル損傷の修復
MyISAM は、予期せぬシャットダウンによって破損した MyISAM テーブルのチェックと修復をサポートしていますが、ここで説明する修復はデータの回復ではありません。MyISAM はトランザクション ストレージ エンジンではないため、実行できません。トランザクションの回復には関連ログが必要となるため、MyISAM テーブルの回復によりデータ損失が発生する可能性があることに注意してください。- check table tablename
を通じてテーブルをチェックし、 repair table tablename - を通じてテーブルを復元できます。
MyISAM テーブルでサポートされるインデックス タイプMyISAM はフルテキスト インデックス作成をサポートしており、mysql5.7 より前にフルテキスト インデックス作成をネイティブにサポートする唯一の公式ストレージ エンジンでした。
MyISAM テーブルはデータ圧縮をサポートしています
MyISAM が大きな読み取り専用テーブルを表す場合、つまり、テーブルが作成されてデータがインポートされた後、テーブルに変更が加えられない場合、テーブルを圧縮してディスク I/O を削減できます。 myisampack - コマンドを使用してテーブルを圧縮できます。圧縮ではテーブルが個別に圧縮されるため、データ行を読み取るときにテーブル全体を解凍する必要はありません。
- 制限:
バージョン
- #適用可能なシナリオ:
- 非トランザクション アプリケーション
- 読み取り専用アプリケーション (レポートなど)
空間アプリケーション
- 5.2 Innodb
-
Innodb は、MySQL 5.5 以降のバージョンのデフォルトのストレージ エンジンです。Innodb は、トランザクション ストレージ用のストレージ エンジンであり、トランザクション処理をサポートします。
5.2.1 システム表スペースと独立表スペースのどちらを選択するか
Innodb には独自のテーブル スペースの概念があり、データはinnodb_file_per_table
パラメータによって決定されるテーブル スペースに保存されます。このパラメータがON
の場合、システム拡張子ibd
を持つファイルが Innodb テーブルごとに作成されます。このパラメータがOFF
の場合、データはシステムの共有テーブル スペース (つまりibdataX#) に保存されます。 ##、#XX
は数値を表し、デフォルトでは 1 から始まります。このパラメータを表示するコマンドは次のとおりです:
show variables like 'innodb_file_per_table';このパラメータを変更するコマンドは次のとおりです:
set global innodb_file_per_table=off;##比較:
システム テーブル スペース
独立したテーブル スペース ファイル サイズを単純に縮小することはできませんoptimize table システム ファイルを圧縮するコマンド を渡すと IO ボトルネックが発生します同時に複数のファイルにデータを更新できます 推奨事項:Innodb に独立したテーブル スペースを使用する
- 元のテーブルを転送しますシステム表スペースに存在するメソッドを独立した表スペースに追加します。
mysqldump を使用してすべてのデータベース テーブル データをエクスポートします
- MySQL サービスを停止し、パラメータを変更し、Innodb 関連ファイルを削除します
- MySQL サービスを再起動し、Innodb システム テーブル スペースを再構築します
- データを再インポートします
- ##5.2.2 Innodb ストレージ エンジンの機能
# #Innodb はトランザクション ストレージ エンジンです トランザクションの ACID 特性 (前に紹介したアトミック性、一貫性など) を完全にサポートします
- Redo ログと Undo ログ
- Redoログの実装 トランザクションの持続性は 2 つの部分で構成されます。1 つはメモリ内の作業ログ永続バッファで、そのサイズは innodb_log_buffer_size によって決まります。もう 1 つは再構築されたログ ファイルで、ファイル内に表示される ib_logflie です。システム関連の書類。 Undo Log はトランザクションのアトミック性を実現し、トランザクションが失敗した場合にロールバック操作を実行します。 REDO ログはシーケンシャルに読み書きされ、Undo ログはランダムに読み書きされます。可能であれば、データをソリッド ステート ドライブに保存すると、パフォーマンスが向上します。
- Innodb は行レベルのロックをサポートしています 行レベルのロックとテーブルレベルのロックは異なります。行レベルのロックの特徴は、同時実行性を最大限にサポートできることです。行レベルのロックは次のとおりです。ストレージ エンジン層によって実装されます。
- 5.2.3 Innodb ステータスのチェック
show Engine innodb status
5.2.4 該当するシナリオ
5.2.4 (拡張) ロックとは何ですか
5.2.3.1 ロックとは何ですか?
#ロックの主な機能は、共有リソースへの同時アクセスを管理することです#ロックはトランザクションの分離を実現するために使用されます
##5.2 .3.2 ロックの種類:- 共有ロック (読み取りロックとも呼ばれます)
5.2.3.3 書き込みロックと読み取りロックの互換関係(1行の互換性)
書き込みロック
書き込みロック | 非互換 | |
---|---|---|
読み取りロック | 非互換 | 互換性のある |
実際の状況では、結果は上の表の結果と異なる場合があります。主な理由は、Innodb のロック メカニズムが非常に複雑なものであり、最終結果に影響を与えるロックが多数あるためです。 5.2.3.4 ロックの粒度:
5.2.3.5 ブロッキングとデッドロック ブロッキング: ブロッキングは、異なるロック間の互換性関係が原因で発生します。ある時点で、あるトランザクションのロックは、別のトランザクションのロックが完了するまで待機する必要があります。占有しているリソースが障害を形成します。 5.3 CSV ストレージ エンジン CSV ストレージ エンジンは、csv ファイルを mysql テーブル ファイルとして処理できます。このストレージ エンジンのストレージ形式は通常の csv ファイルです。 CSV ストレージ エンジンの保存方法は非常に独特です。テーブルを MyISAM または Innodb に保存すると、これら 2 つのファイルはバイナリ形式で保存されるため、データ ファイルを直接参照できません。CSV ストレージ エンジンは異なります。CSV データは次の形式で保存されます。テキスト形式のファイル。つまり、more などのファイルを表示するコマンドを使用して表示することも、vi コマンドを使用して CSV ストレージ エンジン内のテーブルを表示および編集することもできます。形式と要件が満たされている限り、 CSV ファイルの要件を満たしている場合、データが破損することを心配する必要はありません。 5.3.1 CSV ストレージ エンジンの特徴
5.3.2 CSV ストレージ エンジンの適用可能なシナリオ CSV ストレージ エンジンはデータ交換に適しています中間テーブル 5.4.1 ファイル システム ストレージの特性 アーカイブストレージ エンジンはすべての書き込みをキャッシュし、zlib を使用して挿入された行を圧縮します。そのため、アーカイブ ストレージ エンジンは、MyISAM ストレージ エンジンのテーブルと比較してディスク I/O を節約します。同じ桁のデータの場合、アーカイブ ストレージ エンジンは、MyISAM と比較してストレージ スペースを節約します。そしてInnodb。アーカイブ ストレージ エンジンに保存される数テラバイトの Innodb テーブルには、数百メガバイトのストレージ スペースしか必要としない場合があります。 アーカイブ ストレージ エンジンのテーブル データは、ARZ というサフィックスを持つファイルですが、他のエンジンと同様に、テーブルの構造情報を格納するために使用される frm というサフィックスを持つシステム ファイルもあります。
シナリオ 1: ログおよびデータ収集クラス Data アーカイブは変更と削除をサポートしていないため、ORDB は間違いなくデータを変更しますが、一部のウェアハウス タイプのアプリケーションや、ログ テーブルやデータ収集テーブルなどの特殊なテーブルには依然として役立ちます。大量のデータを収集する必要があるため、アーカイブ ストレージ エンジンを使用します。アーカイブ ストレージ エンジンのストレージ容量はすべてのエンジンの中で最も小さいため、データ収集またはログ アプリケーションであっても、アーカイブ ストレージ エンジンはこれらのデータを更新できないことに注意してください。そのため、ログを記録するとき、またはデータ コレクション内のデータを変更する場合は、アプリケーションを使用すると、アーカイブ ストレージ エンジンを使用できない場合があります。
5.5.1 ファイル システム ストレージの特性 メモリ ストレージ エンジンは HEAP ストレージ エンジンとも呼ばれ、データはメモリに保存されます。これは、データ テーブルが使い捨てであることを意味します。MySQL サービスが再起動されると、すべてのメモリ ストレージ エンジンのデータが消去されます。ただし、テーブル構造はメモリ ストレージ エンジンの下でテーブルを作成すると、テーブル構造を保存するために使用される frm システム ファイルのみが生成されるため、このファイルは保持されます。これが、MySQL サーバーを再起動するとデータは失われますが、テーブル構造は失われない理由です。 5.5.2 メモリの機能特徴 機能特徴:
5.5.3 メモリの紛らわしい概念 メモリ ストレージ エンジン テーブル: 5.5.4 メモリ使用シナリオ
メモリ データは失われやすいため、データは再現可能である必要があります。 5.6 Federated Storage Engine 5.6.1 Federated の機能
5.6.2 Federated の使用方法 Federated Storage Engine はサーバーに接続する SQL Server の機能を実現しますが、独自のパフォーマンスにより、あまり良くありません。通常、レプリケーションなどを通じて同じ目的を達成できるため、現在の MySQL バージョンでは、フェデレーション ストレージ エンジンはデフォルトで無効になっています。 Federated Storage Engine を使用する必要がある場合は、 5.6.3 Federated に適用できるシナリオ
6 正しいストレージ エンジンの選択方法 参考条件:
|
以上がビッグデータ学習パート 2 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は、オープンソースのリレーショナルデータベース管理システムです。 1)データベースとテーブルの作成:createdatabaseおよびcreateTableコマンドを使用します。 2)基本操作:挿入、更新、削除、選択。 3)高度な操作:参加、サブクエリ、トランザクション処理。 4)デバッグスキル:構文、データ型、およびアクセス許可を確認します。 5)最適化の提案:インデックスを使用し、選択*を避け、トランザクションを使用します。

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

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

MySQLはオープンソースのリレーショナルデータベース管理システムであり、主にデータを迅速かつ確実に保存および取得するために使用されます。その実用的な原則には、クライアントリクエスト、クエリ解像度、クエリの実行、返品結果が含まれます。使用法の例には、テーブルの作成、データの挿入とクエリ、および参加操作などの高度な機能が含まれます。一般的なエラーには、SQL構文、データ型、およびアクセス許可、および最適化の提案には、インデックスの使用、最適化されたクエリ、およびテーブルの分割が含まれます。

MySQLは、そのパフォーマンス、信頼性、使いやすさ、コミュニティサポートに選択されています。 1.MYSQLは、複数のデータ型と高度なクエリ操作をサポートし、効率的なデータストレージおよび検索機能を提供します。 2.クライアントサーバーアーキテクチャと複数のストレージエンジンを採用して、トランザクションとクエリの最適化をサポートします。 3.使いやすく、さまざまなオペレーティングシステムとプログラミング言語をサポートしています。 4.強力なコミュニティサポートを提供し、豊富なリソースとソリューションを提供します。

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

Redisは、単一のスレッドアーキテクチャを使用して、高性能、シンプルさ、一貫性を提供します。 I/Oマルチプレックス、イベントループ、ノンブロッキングI/O、共有メモリを使用して同時性を向上させますが、並行性の制限、単一の障害、および書き込み集約型のワークロードには適していません。

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