MySQL データディレクトリ (整理された概要)
この記事では、mysql に関する関連知識を提供します。主に、mysql データ ディレクトリに関する関連問題を紹介します。一緒に見てみましょう。皆さんのお役に立てれば幸いです。
1. MySQL 8 のメイン ディレクトリ構造
MySQL 8 をインストールすると、以下のディレクトリ構造:
1. 1 データベース ファイルの格納パス
## MySQL データベース ファイルの格納パス: /var/lib/mysql/
#結果からわかるように、私のコンピューター上の MySQL データ ディレクトリは /var/lib/mysql/ です。
1. 2 関連コマンド ディレクトリ
関連コマンド ディレクトリ: /usr/bin (mysqladmin、mysqlbinlog、mysqldump およびその他のコマンド) および /ユーザー/sbin。
1. 3 設定ファイルディレクトリ
設定ファイルディレクトリ:/usr/share/mysql-8.0 (コマンドと設定ファイル),/ etc/mysql (my.cnf など) [root@atguigu01 ~]# find / -name mysql
mysql> show variables like 'datadir';
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| datadir | /var/lib/mysql/ |
+---------------+-----------------+
1 row in set (0.04 sec)
2. データベースとファイル システムの関係
2 1 デフォルトのデータベースを表示します
4 つのデータベースが属していることがわかります。 MySQL システムデータベースが付属しています。
MySQL システムに付属するコア データベースには、MySQL ユーザー アカウントと権限情報に加え、いくつかのストアド プロシージャとイベントが保存されます。定義情報、動作中に生成される一部のログ情報、一部のヘルプ情報、タイムゾーン情報など。
MySQL システムに付属するデータベース。このデータベースには、MySQL サーバーによって維持される他のすべてのデータベースに関する情報が保存されます。
どのテーブル、どのビュー、どのトリガー、どの列、どのインデックス。この情報は実際のユーザー データではなく、メタデータと呼ばれる説明的な情報です。
innodb_sys で始まる一部のテーブルは、内部システム テーブルを表すためにシステム データベース information_schema に提供されています。 mysql> SHOW DATABASES;
mysql> USE information_schema;
Database changed
mysql> SHOW TABLES LIKE 'innodb_sys%';
+--------------------------------------------+
| Tables_in_information_schema (innodb_sys%) |
MySQL システムに付属するデータベースこのデータベースは主に、MySQL サーバーの動作中にいくつかのステータス情報を保存します。
## MySQL サービスのさまざまなパフォーマンス指標を監視するために使用されます。最近実行されたステートメント、実行プロセスの各段階でかかった時間、メモリ使用量、その他の情報に関する統計が含まれます。 sysMySQL システムに付属するデータベース。このデータベースは主に、information_schema と# を形式で組み合わせたものです。 ##Performance_schema は、システム管理者と開発者が MySQL の技術的なパフォーマンスを監視できるように結合されます。
#2. 2 ファイル システムにおけるデータベースの表現このデータ ディレクトリには多くのファイルとサブディレクトリがあります。information_schema システム データベースに加えて、他のデータベース
もあります。データ ディレクトリの下には、対応するサブディレクトリがあります。 私の一時データベースを例として、MySQL 5.7 で開きます:
-rw-r-----. 1 mysql mysql 50331648 7 月 28 00 :27 ib_logfile -rw-r-----. 1 mysql mysql 12582912 8 月 6 10 :56 ibtmp drwxr-x---. 2 mysql mysql 4096 8 月 6 10 :56 #innodb_temp drwxr-x---. 2 mysql mysql 4096 7 月 28 00 :27 mysql -rw-r-----. 1 mysql mysql 26214400 8 月 6 10 :56 mysql.ibd srwxrwxrwx. 1 mysql mysql 0 8 月 6 10 :56 mysql.sock -rw-------. 1 mysql mysql 5 8 月 6 10 :56 mysql.sock.lock drwxr-x---. 2 mysql mysql 4096 7 月 28 00 :27 performance_schema -rw-------. 1 mysql mysql 1680 7 月 28 00 :27 private_key.pem -rw-r--r--. 1 mysql mysql 452 7 月 28 00 :27 public_key.pem -rw-r--r--. 1 mysql mysql 1112 7 月 28 00 :27 server-cert.pem -rw-------. 1 mysql mysql 1680 7 月 28 00 :27 server-key.pem drwxr-x---. 2 mysql mysql 4096 7 月 28 00 :27 sys drwxr-x---. 2 mysql mysql 4096 7 月 29 23 :10 temp -rw-r-----. 1 mysql mysql 16777216 8 月 6 10 :58 undo_ -rw-r-----. 1 mysql mysql 16777216 8 月 6 10 :58 undo_
[root@atguigu02 mysql]# cd ./temp [root@atguigu02 temp]# ll 总用量 1144 -rw-r-----. 1 mysql mysql 8658 8 月 18 11 :32 countries.frm -rw-r-----. 1 mysql mysql 114688 8 月 18 11 :32 countries.ibd -rw-r-----. 1 mysql mysql 61 8 月 18 11 :32 db.opt -rw-r-----. 1 mysql mysql 8716 8 月 18 11 :32 departments.frm -rw-r-----. 1 mysql mysql 147456 8 月 18 11 :32 departments.ibd -rw-r-----. 1 mysql mysql 3017 8 月 18 11 :32 emp_details_view.frm -rw-r-----. 1 mysql mysql 8982 8 月 18 11 :32 employees.frm -rw-r-----. 1 mysql mysql 180224 8 月 18 11 :32 employees.ibd -rw-r-----. 1 mysql mysql 8660 8 月 18 11 :32 job_grades.frm -rw-r-----. 1 mysql mysql 98304 8 月 18 11 :32 job_grades.ibd -rw-r-----. 1 mysql mysql 8736 8 月 18 11 :32 job_history.frm -rw-r-----. 1 mysql mysql 147456 8 月 18 11 :32 job_history.ibd -rw-r-----. 1 mysql mysql 8688 8 月 18 11 :32 jobs.frm -rw-r-----. 1 mysql mysql 114688 8 月 18 11 :32 jobs.ibd -rw-r-----. 1 mysql mysql 8790 8 月 18 11 :32 locations.frm -rw-r-----. 1 mysql mysql 131072 8 月 18 11 :32 locations.ibd -rw-r-----. 1 mysql mysql 8614 8 月 18 11 :32 regions.frm -rw-r-----. 1 mysql mysql 114688 8 月 18 11 :32 regions.ibd
#テーブル構造を保存するには、データ ディレクトリ A に対応する InnoDB を保存します。テーブル構造を記述するために特に使用されるファイルは、データベース サブディレクトリ に作成されます。ファイル名は次のようになります:
たとえば、 atguigu データベースの下に test という名前のテーブルを作成します。 次に、テーブル構造を記述した test.frm という名前のファイルが atguigu データベースに対応するサブディレクトリに作成されます。 .frm ファイル
# の形式は、異なるプラットフォームでも同じです。このサフィックスは .frm でバイナリ形式で保存されているため、直接開くと
① システム テーブルスペースデフォルトでは、InnoDB はデータ ディレクトリに ibdata1 というサイズの 12M のファイルを作成します。このファイルはに対応します。
的系统表空间在文件系统上的表示。怎么才 12 M?注意这个文件是自扩展文件,当不够用的时候它会自
当然,如果你想让系统表空间对应文件系统上多个实际文件,或者仅仅觉得原来的ibdata1这个文件名
难听,那可以在MySQL启动时配置对应的文件路径以及它们的大小,比如我们这样修改一下my.cnf 配置
② 独立表空间(file-per-table tablespace)
[root@atguigu01 mysql]# cd ./temp [root@atguigu01 temp]# ll 总用量 1080 -rw-r-----. 1 mysql mysql 131072 7 月 29 23 :10 countries.ibd -rw-r-----. 1 mysql mysql 163840 7 月 29 23 :10 departments.ibd -rw-r-----. 1 mysql mysql 196608 7 月 29 23 :10 employees.ibd -rw-r-----. 1 mysql mysql 114688 7 月 29 23 :10 job_grades.ibd -rw-r-----. 1 mysql mysql 163840 7 月 29 23 :10 job_history.ibd -rw-r-----. 1 mysql mysql 131072 7 月 29 23 :10 jobs.ibd -rw-r-----. 1 mysql mysql 147456 7 月 29 23 :10 locations.ibd -rw-r-----. 1 mysql mysql 131072 7 月 29 23 :10 regions.ibd
表名.frm
mysql> USE atguigu; Database changed
mysql> CREATE TABLE test ( -> c1 INT -> ); Query OK, 0 rows affected (0.03 sec)
[server] innodb_data_file_path=data1:512M;data2:512M:autoextend
在MySQL5.6.6以及之后的版本中,InnoDB并不会默认的把各个表的数据存储到系统表空间中,而是为每
一个表建立一个独立表空间,也就是说我们创建了多少个表,就有多少个独立表空间。使用独立表空间来
存储表数据的话,会在该表所属数据库对应的子目录下创建一个表示该独立表空间的文件,文件名和表
名相同,只不过添加了一个.ibd的扩展名而已,所以完整的文件名称长这样:
比如:我们使用了独立表空间去存储atguigu数据库下的test表的话,那么在该表所在数据库对应
其中test.ibd文件就用来存储test表中的数据和索引。
我们可以自己指定使用系统表空间还是独立表空间来存储数据,这个功能由启动参数
innodb_file_per_table控制,比如说我们想刻意将表数据都存储到系统表空间时,可以在启动
随着MySQL的发展,除了上述两种老牌表空间之外,现在还新提出了一些不同类型的表空间,比如通用
表空间(general tablespace)、临时表空间(temporary tablespace)等。
2. 3. 2 MyISAM存储引擎模式
在存储表结构方面,MyISAM和InnoDB一样,也是在数据目录下对应的数据库子目录下创建了一个专
在MyISAM中的索引全部都是二级索引,该存储引擎的数据和索引是分开存放的。所以在文件系统中也是
使用不同的文件来存储数据文件和索引文件,同时表数据都存放在对应的数据库子目录下。假如test
表使用MyISAM存储引擎的话,那么在它所在数据库对应的atguigu目录下会为test表创建这三个文
表名.ibd
test.frm test.ibd
[server] innodb_file_per_table=0 # 0:代表使用系统表空间; 1 :代表使用独立表空间
mysql> show variables like 'innodb_file_per_table'; +-----------------------+-------+ | Variable_name | Value | +-----------------------+-------+ | innodb_file_per_table | ON | +-----------------------+-------+ 1 row in set (0.01 sec)
表名.frm
举例:创建一个MyISAM 表,使用ENGINE 选项显式指定引擎。因为InnoDB是默认引擎。
2. 4 小结
举例:数据库a,表b。
1 、如果表b采用InnoDB,data\a中会产生 1 个或者 2 个文件:
b.frm :描述表结构文件,字段长度等
如果采用系统表空间模式的,数据信息和索引信息都存储在ibdata1中
如果采用独立表空间存储模式,data\a中还会产生b.ibd文件(存储数据信息和索引信息)
此外:
① MySQL5.7 中会在data/a的目录下生成db.opt文件用于保存数据库的相关配置。比如:字符集、比较
规则。而MySQL8.0不再提供db.opt文件。
② MySQL8.0中不再单独提供b.frm,而是合并在b.ibd文件中。
2 、如果表b采用MyISAM,data\a中会产生 3 个文件:
MySQL5.7 中:b.frm:描述表结构文件,字段长度等。
MySQL8.0 中 b.xxx.sdi:描述表结构文件,字段长度等
b.MYD(MYData):数据信息文件,存储数据信息(如果采用独立表存储模式)
b.MYI(MYIndex):存放索引信息文件
test.frm 存储表结构 test.MYD 存储数据 (MYData) test.MYI 存储索引 (MYIndex)
CREATE TABLE `student_myisam` ( `id` bigint NOT NULL AUTO_INCREMENT, `name` varchar( 64 ) DEFAULT NULL, `age` int DEFAULT NULL, `sex` varchar( 2 ) DEFAULT NULL, PRIMARY KEY (`id`) )ENGINE=MYISAM AUTO_INCREMENT= 0 DEFAULT CHARSET=utf8mb3;
推荐学习:mysql视频教程
以上がMySQL データディレクトリ (整理された概要)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック











Laravelは、Webアプリケーションを簡単に構築するためのPHPフレームワークです。次のような強力な機能を提供します。インストール:Laravel CLIを作曲家にグローバルにインストールし、プロジェクトディレクトリにアプリケーションを作成します。ルーティング:ルート/web.phpのURLとハンドラーの関係を定義します。ビュー:リソース/ビューでビューを作成して、アプリケーションのインターフェイスをレンダリングします。データベース統合:MySQLなどのデータベースとのすぐ外側の統合を提供し、移行を使用してテーブルを作成および変更します。モデルとコントローラー:モデルはデータベースエンティティを表し、コントローラーはHTTP要求を処理します。

MySQLとPHPMyAdminは、強力なデータベース管理ツールです。 1)MySQLは、データベースとテーブルを作成し、DMLおよびSQLクエリを実行するために使用されます。 2)PHPMyAdminは、データベース管理、テーブル構造管理、データ操作、ユーザー許可管理のための直感的なインターフェイスを提供します。

他のプログラミング言語と比較して、MySQLは主にデータの保存と管理に使用されますが、Python、Java、Cなどの他の言語は論理処理とアプリケーション開発に使用されます。 MySQLは、データ管理のニーズに適した高性能、スケーラビリティ、およびクロスプラットフォームサポートで知られていますが、他の言語は、データ分析、エンタープライズアプリケーション、システムプログラミングなどのそれぞれの分野で利点があります。

記事の概要:この記事では、Laravelフレームワークを簡単にインストールする方法について読者をガイドするための詳細なステップバイステップの指示を提供します。 Laravelは、Webアプリケーションの開発プロセスを高速化する強力なPHPフレームワークです。このチュートリアルは、システム要件からデータベースの構成とルーティングの設定までのインストールプロセスをカバーしています。これらの手順に従うことにより、読者はLaravelプロジェクトのための強固な基盤を迅速かつ効率的に築くことができます。

MySQLでは、外部キーの機能は、テーブル間の関係を確立し、データの一貫性と整合性を確保することです。外部キーは、参照整合性チェックとカスケード操作を通じてデータの有効性を維持します。パフォーマンスの最適化に注意し、それらを使用するときに一般的なエラーを避けてください。

MySQLとMariaDBの主な違いは、パフォーマンス、機能、ライセンスです。1。MySQLはOracleによって開発され、Mariadbはフォークです。 2. Mariadbは、高負荷環境でパフォーマンスを向上させる可能性があります。 3.MariaDBは、より多くのストレージエンジンと機能を提供します。 4.MySQLは二重ライセンスを採用し、MariaDBは完全にオープンソースです。既存のインフラストラクチャ、パフォーマンス要件、機能要件、およびライセンスコストを選択する際に考慮する必要があります。

記事の最初の段落の要約:YIフレームワークアプリケーションを開発するソフトウェアを選択する場合、複数の要因を考慮する必要があります。 XcodeやAndroid Studioなどのネイティブモバイルアプリケーション開発ツールは、強力な制御と柔軟性を提供できますが、Reactネイティブやフラッターなどのクロスプラットフォームフレームワークは、一度に複数のプラットフォームに展開できる利点にますます人気が高まっています。モバイル開発を新しい開発者向けに、AppsheetやGlideなどの低コードまたはノーコードプラットフォームは、アプリケーションをすばやく簡単に構築できます。さらに、AWS AmplifyやFirebaseなどのクラウドサービスプロバイダーは包括的なツールを提供します

SQLはリレーショナルデータベースを管理するための標準言語であり、MySQLはSQLを使用するデータベース管理システムです。 SQLは、CRUD操作を含むデータベースと対話する方法を定義しますが、MySQLはSQL標準を実装し、ストアドプロシージャやトリガーなどの追加機能を提供します。
