検索
ホームページデータベースmysql チュートリアルmysqlデータベースのストレージエンジンの詳細説明
mysqlデータベースのストレージエンジンの詳細説明Mar 14, 2018 am 10:27 AM
mysqlデータベース詳しい

この記事では mysql データベース のストレージ エンジンについて説明します。そのため、mysql データベースのストレージ エンジンや私たちのエンジンについてあまり知らない学生は、mysql データベースのストレージ エンジンに関するこの記事を参照してください。

最適化構造の紹介:

タイプ 意味
ストレージレイヤー ストレージエンジン、フィールドタイプの選択、パラダイムデザイン
デザインレイヤー インデックス、キャッシュ、パーティション (サブテーブル)
アーキテクチャレイヤー 複数のmysqlサーバー設定、読み書き分離(マスター/スレーブモード)
sqlステートメントレイヤー 複数のSQLステートメントで目的を達成できる場合は、高パフォーマンスを選択してくださいそして高速 SQL ステートメント

ストレージ エンジン

ストレージ エンジン: 私たちが使用するデータは、特定のテクノロジーを通じてデータベースに保存され、データベース データはファイルの形式でハードディスクに保存されます。複数のテクノロジーがあり、それぞれのテクノロジーには独自のパフォーマンスと機能があります。データを保存するためのテクノロジーと機能の組み合わせは、「ストレージ エンジン」と呼ばれます。

  • mysql で頻繁に使用されるストレージ エンジン: MyisamInnodb など。

  • mysqlデータベースのストレージエンジンの詳細説明

    データベース データはさまざまなストレージ エンジンに保存され、すべての機能は現在のストレージ エンジンに関連しています。 プロジェクトのニーズと特性に応じて、さまざまなストレージ エンジンを選択する必要があります。

  • mysql でサポートされているすべてのストレージ エンジンを表示します:
    mysqlデータベースのストレージエンジンの詳細説明

innodb

データベース内の各データ テーブルのデータ設計情報の 3 つの側面: テーブル構造、データ、インデックス

  • 技術的特徴: サポートトランザクション、行レベルのロック、外部キー

mysqlデータベースのストレージエンジンの詳細説明

テーブル構造、データ、インデックスの物理ストレージ

  • innodb データテーブルを作成します:
    mysqlデータベースのストレージエンジンの詳細説明

  • テーブル構造ファイル:

このタイプのデータとインデックスの物理ファイルの場所: mysqlデータベースのストレージエンジンの詳細説明

すべての innodb テーブル データとインデックス情報は、次の ibdata1 ファイルに保存されます
innodb タイプのテーブル ストレージスペース:

mysqlデータベースのストレージエンジンの詳細説明

デフォルトでは、各 innodb テーブルのデータとインデックスに対して個別のファイルストレージは作成されません

mysqlデータベースのストレージエンジンの詳細説明 各 innodb テーブルが一意のデータとインデックスを持つように

変数
    を設定しますファイル:

mysqlデータベースのストレージエンジンの詳細説明 order2 データテーブルを再作成します:

mysqlデータベースのストレージエンジンの詳細説明この時点で、order2 データテーブルには個別のデータとインデックスストレージファイルがあります:

mysqlデータベースのストレージエンジンの詳細説明後でinnodb_file_per_tableの設定状況がどのように変化しても、order2のデータとインデックスは独立した格納場所を持ちます

  • データの格納順序


innodbテーブルのデータの格納は、書き込まれた各データを主キーの順序。

この機能は、このタイプのテーブルの書き込み操作が遅いことを決定します。

mysqlデータベースのストレージエンジンの詳細説明トランザクション、外部キー

このタイプのデータテーブルはトランザクションと外部キーをサポートします

トランザクション: http://blog.csdn.net/change_any_time/article/details/79488020

  • 外部キー: 2 つのデータテーブル A とテーブル B、およびテーブル B の主キーはテーブル A の通常のフィールドです。テーブル A で見ると、この通常のフィールドはテーブルの「外部キー」です。外部キーの使用には「制約」があります。

    制約: 上記 2 つのテーブルの場合、テーブル B のデータを最初に書き込む必要があり、次にテーブル A のデータとテーブル A の外部キー値はテーブル B の主キー ID 値から取得する必要があり、その範囲を超えることはできません。 。


「外部キー」は制約があるため、実際のプロジェクトではほとんど使用されません。

  • 同時実行性

  • このタイプのテーブルの同時実行性は非常に高く、複数の人が同時にデータテーブルを操作する際に、データ内容が不用意に変更されることを防ぐために、情報は「ロックされました」
このタイプのロック レベルは行ロックです。操作されている現在のレコードのみがロックされます。

Myisam

構造、データ、インデックスは独立して保存されます。このタイプのデータ テーブルには、テーブル構造、データ、インデックス用の独立したストレージ ファイルがあります。各myisamデータテーブル構造、データ、インデックスは独立したストレージファイルを持っています


  • mysqlデータベースのストレージエンジンの詳細説明

  • テーブルファイルタイプ


    意味mysqlデータベースのストレージエンジンの詳細説明

*.frm* .MYDテーブルデータファイルテーブルインデックスファイル

機能: 独立したストレージ ファイルを個別にバックアップおよび復元できます。

データの格納順序

  • myisamテーブルのデータの格納は、書き込まれた各データを自然な順序で並べることです。
    mysqlデータベースのストレージエンジンの詳細説明

    この機能は、このタイプのテーブルの書き込み操作が高速であることを決定します。

同時実行性

この機能は、このタイプのテーブルの書き込み操作が高速であることを決定します。

圧縮メカニズム

データテーブルに大量のデータが含まれている場合、ストレージスペースを節約するためにテーブルを圧縮する必要があります。

  • 現在のデータテーブルのデータをコピーします:
    mysqlデータベースのストレージエンジンの詳細説明

  • 継続的にコピーすると、order3データテーブルのデータが200万を超えます:
    mysqlデータベースのストレージエンジンの詳細説明

  • 200万を保存する対応する物理ファイル情報サイズのサイズは40メガバイトを超えています。ARDER3データのデータの圧縮テーブル
    mysqlデータベースのストレージエンジンの詳細説明

compressionツール:myisampack.exeテーブル名


  • rebuildインデックス:myisamchk。 exe -rq テーブル名
    mysqlデータベースのストレージエンジンの詳細説明

  • 解凍ツール: myisamchk.exe –unpack テーブル名
    mysqlデータベースのストレージエンジンの詳細説明

  • order3 テーブル情報が領域の 60% 圧縮されます:
    mysqlデータベースのストレージエンジンの詳細説明

  • order3 データテーブルが圧縮されます。しかしインデックスは消えています:
    mysqlデータベースのストレージエンジンの詳細説明

  • インデックスを再構築します:
    mysqlデータベースのストレージエンジンの詳細説明

  • インデックスは実際に再構築されます:
    mysqlデータベースのストレージエンジンの詳細説明

  • データテーブルを更新します: フラッシュテーブル テーブル名
    mysqlデータベースのストレージエンジンの詳細説明

  • 発生: 圧縮されたデータテーブルは読み取り専用です テーブル、情報を書き込むことはできません:
    mysqlデータベースのストレージエンジンの詳細説明

  • 圧縮データテーブルには特性があります: 頻繁に書き込むことはできませんが、固定内容のデータテーブルは圧縮できます。や地域情報など)
    データを書き込む必要がある場合: データ テーブルを解凍し、データを書き込んでから圧縮します mysqlデータベースのストレージエンジンの詳細説明

データを書き込めるように order3 データ テーブルを解凍します: (解凍とインデックスの自動的な再構築を同時に行います)

  • データ解凍が完了しました:
    mysqlデータベースのストレージエンジンの詳細説明

  • フラッシュ操作を実行し、解凍されたデータを更新します:
    ; この操作では、order3.MYD.00996D46.deleted の圧縮バックアップ ファイルも削除されますmysqlデータベースのストレージエンジンの詳細説明

  • flush table  表名 order3 に許可します。現時点では書き込みを続けます データ:
    mysqlデータベースのストレージエンジンの詳細説明

  • innodb ストレージ エンジン: 変更と削除に適しています
    Myisam ストレージ エンジン: クエリと書き込みに適していますmysqlデータベースのストレージエンジンの詳細説明

  • アーカイブ

innodb ストレージ エンジン: 変更と削除に適しています
Myisam ストレージ エンジン:

memory

メモリ ストレージ エンジンのクエリと書き込みに適しており、動作速度が非常に速く、サーバーの電源がオフになると、ストレージ エンジンへのデータが失われます。すぐに。

ストレージ エンジンの選択

Myisam と innodb

  1. ほとんどの場合、Web サイトには多くの「読み取りと書き込み」操作があるため、Myisam タイプを選択するのが適切です (例: dedecms、phpcms コンテンツ管理システム) (ニュース Web サイト、ディスカス フォーラム)

  2. ビジネス ロジックに特定の要件がある Web サイト (オフィス Web サイト、ショッピング モール) は、innodb を選択するのに適しています (Mysql5.5 のデフォルトのストレージ エンジンは innodb)



テーブル構造ファイル
*.MYI

以上がmysqlデータベースのストレージエンジンの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
图文详解mysql架构原理图文详解mysql架构原理May 17, 2022 pm 05:54 PM

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于架构原理的相关内容,MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层,下面一起来看一下,希望对大家有帮助。

mysql怎么替换换行符mysql怎么替换换行符Apr 18, 2022 pm 03:14 PM

在mysql中,可以利用char()和REPLACE()函数来替换换行符;REPLACE()函数可以用新字符串替换列中的换行符,而换行符可使用“char(13)”来表示,语法为“replace(字段名,char(13),'新字符串') ”。

mysql的msi与zip版本有什么区别mysql的msi与zip版本有什么区别May 16, 2022 pm 04:33 PM

mysql的msi与zip版本的区别:1、zip包含的安装程序是一种主动安装,而msi包含的是被installer所用的安装文件以提交请求的方式安装;2、zip是一种数据压缩和文档存储的文件格式,msi是微软格式的安装包。

mysql怎么去掉第一个字符mysql怎么去掉第一个字符May 19, 2022 am 10:21 AM

方法:1、利用right函数,语法为“update 表名 set 指定字段 = right(指定字段, length(指定字段)-1)...”;2、利用substring函数,语法为“select substring(指定字段,2)..”。

mysql怎么将varchar转换为int类型mysql怎么将varchar转换为int类型May 12, 2022 pm 04:51 PM

转换方法:1、利用cast函数,语法“select * from 表名 order by cast(字段名 as SIGNED)”;2、利用“select * from 表名 order by CONVERT(字段名,SIGNED)”语句。

MySQL复制技术之异步复制和半同步复制MySQL复制技术之异步复制和半同步复制Apr 25, 2022 pm 07:21 PM

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于MySQL复制技术的相关问题,包括了异步复制、半同步复制等等内容,下面一起来看一下,希望对大家有帮助。

带你把MySQL索引吃透了带你把MySQL索引吃透了Apr 22, 2022 am 11:48 AM

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了mysql高级篇的一些问题,包括了索引是什么、索引底层实现等等问题,下面一起来看一下,希望对大家有帮助。

mysql怎么判断是否是数字类型mysql怎么判断是否是数字类型May 16, 2022 am 10:09 AM

在mysql中,可以利用REGEXP运算符判断数据是否是数字类型,语法为“String REGEXP '[^0-9.]'”;该运算符是正则表达式的缩写,若数据字符中含有数字时,返回的结果是true,反之返回的结果是false。

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

SublimeText3 Mac版

SublimeText3 Mac版

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

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!