首頁 資料庫 mysql教程 [MySQL]数据目录的组织架构_MySQL

[MySQL]数据目录的组织架构_MySQL

Jun 01, 2016 pm 01:28 PM
作業系統 軟體

bitsCN.com

[MySQL]数据目录的组织架构

 

归根到底,MySQL是运行在操作系统上的一个软件,它需要借助于文件系统存储数据,本文主要介绍MySQL数据目录的组织架构。

 

数据目录的位置

可以通过以下几个方法查看MySQL数据目录的位置:

1)对于一个正在运行的MySQL服务器来说,可以通过查看mysqld的进程获取MySQL数据目录的位置,如下所示:

[plain][root@lx202 /data/mysql/data ]# ps -ef|grep mysqld  root      5841  7337  0 15:09 pts/1    00:00:00 grep --color=auto mysqld  root     27034     1  0  2012 ?        00:00:00 /bin/sh /opt/mysql/bin/mysqld_safe --datadir=/data/mysql/data --pid-file=/data/mysql/data/lx202.pid  mysql    27889 27034 30  2012 ?        111-03:03:55 /opt/mysql/bin/mysqld --basedir=/opt/mysql --datadir=/data/mysql/data --plugin-dir=/opt/mysql/lib/mysql/plugin --user=mysql --log-error=/data/mysql/log/alert.log --open-files-limit=65535 --pid-file=/data/mysql/data/lx202.pid --socket=/opt/mysql/run/mysql.sock --port=3306  
登入後複製

其中的--datadir指定的就是数据目录的位置。

2)查看my.cnf的配置信息:

[plain] [mysqld]  datadir = /data/mysql/data  
登入後複製

3)登陆数据库,运行show variables命令查看:

[sql] mysql> show variables like 'datadir';  +---------------+-------------------+  | Variable_name | Value             |  +---------------+-------------------+  | datadir       | /data/mysql/data/ |   +---------------+-------------------+  1 row in set (0.00 sec)  
登入後複製

数据库在文件系统的表示方法

MySQL里,每个数据库都对应一个数据目录里的一个字目录,当你用create database db_name语句创建一个数据库时,将在数据目录下创建一个同名的子目录,在该子目录下,有一个db.opt文件,用于记录数据库默认的字符集和排序方式,如下所示:

[plain] [root@lx202 /data/mysql/data/portal ]# cat db.opt  default-character-set=utf8  default-collation=utf8_general_ci  
登入後複製

表在文件系统的表示方式

因为MySQL支持多个存储引擎,所以表在文件系统的表示方式根据存储引擎的不同而不同。但无论哪种存储引擎,每个表至少对应一个同名的.frm文件,该文件用于描述表结构信息。除了.frm文件之外,各个存储引擎用于存储数据的文件各不相同,下面我们介绍几种常见的存储引擎:

MyISAM

- table_name.MYD:数据文件

- table_name.MYI:索引文件

MERGE

- table_name.MRG:文本文件

InnoDB

InnoDB表的存储是基于表空间的,有两种类型的表空间:

1)共享表空间:由数据目录里的一个或多个大文件构成,这些文件共同组成了一个在逻辑上连续不断的存储区域,共享表空间是通过参数innodb_data_file_path设置的,如下所示:

[plain] innodb_data_file_path = ibdata1:10G;ibdata2:5G:autoextend  
登入後複製

根据上面的配置,将在数据目录下创建两个文件ibdata1和ibdata2来存放innodb的数据。

2)独占表空间:当设置innodb_file_per_table = 1后,每个表对对应一个单独使用的表空间文件.ibd(在其对应的数据库目录下)

这里需要注意的是:即使你配置了独占表空间,共享表空间也是需要的,因为InnoDB的数据字典必须存放在共享表空间里。

视图和触发器在文件系统的表示方式

每个视图包含一个.frm文件,它包含该视图的定义和属性等。

触发器保存在一个.TRG文件里,里面包含着它的定义和属性,但文件不是以触发器命名,而是以触发器相关联的表命名。

存储过程和函数在文件系统的表示方法

MySQL的存储过程和函数分别存放在mysql数据库目录的proc*和func*文件里,如:

[plain] [root@lx202 /data/mysql/data/mysql ]# ls proc*  proc.frm  proc.MYD  proc.MYI  procs_priv.frm  procs_priv.MYD  procs_priv.MYI  [root@lx202 /data/mysql/data/mysql ]# ls func*  func.frm  func.MYD  func.MYI  
登入後複製

 


bitsCN.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

CentOS上Zookeeper性能調優有哪些方法 CentOS上Zookeeper性能調優有哪些方法 Apr 14, 2025 pm 03:18 PM

在CentOS上對Zookeeper進行性能調優,可以從多個方面入手,包括硬件配置、操作系統優化、配置參數調整以及監控與維護等。以下是一些具體的調優方法:硬件配置建議使用SSD硬盤:由於Zookeeper的數據寫入磁盤,強烈建議使用SSD以提高I/O性能。足夠的內存:為Zookeeper分配足夠的內存資源,避免頻繁的磁盤讀寫。多核CPU:使用多核CPU,確保Zookeeper可以並行處理請

Linux實際上有什麼好處? Linux實際上有什麼好處? Apr 12, 2025 am 12:20 AM

Linux適用於服務器、開發環境和嵌入式系統。 1.作為服務器操作系統,Linux穩定高效,常用於部署高並發應用。 2.作為開發環境,Linux提供高效的命令行工具和包管理系統,提升開發效率。 3.在嵌入式系統中,Linux輕量且可定制,適合資源有限的環境。

Debian如何提升Hadoop數據處理速度 Debian如何提升Hadoop數據處理速度 Apr 13, 2025 am 11:54 AM

本文探討如何在Debian系統上提升Hadoop數據處理效率。優化策略涵蓋硬件升級、操作系統參數調整、Hadoop配置修改以及高效算法和工具的運用。一、硬件資源強化確保所有節點硬件配置一致,尤其關注CPU、內存和網絡設備性能。選擇高性能硬件組件對於提升整體處理速度至關重要。二、操作系統調優文件描述符和網絡連接數:修改/etc/security/limits.conf文件,增加系統允許同時打開的文件描述符和網絡連接數上限。 JVM參數調整:在hadoop-env.sh文件中調整

centos安裝mysql centos安裝mysql Apr 14, 2025 pm 08:09 PM

在 CentOS 上安裝 MySQL 涉及以下步驟:添加合適的 MySQL yum 源。執行 yum install mysql-server 命令以安裝 MySQL 服務器。使用 mysql_secure_installation 命令進行安全設置,例如設置 root 用戶密碼。根據需要自定義 MySQL 配置文件。調整 MySQL 參數和優化數據庫以提升性能。

Debian Hadoop數據傳輸優化方法 Debian Hadoop數據傳輸優化方法 Apr 12, 2025 pm 08:24 PM

提升DebianHadoop集群数据传输效率的关键在于多方面策略的综合运用。本文将详细阐述优化方法,助您显著提升集群性能。一、数据本地化策略最大限度地将计算任务分配至数据存储节点,有效减少节点间数据传输。Hadoop的数据本地化机制会自动将数据块移动到计算任务所在的节点,从而避免网络传输带来的性能瓶颈。二、数据压缩技术在数据传输过程中采用数据压缩技术,降低网络传输数据量,从而提升传输效率。Hadoop支持多种压缩算法,例如Snappy、Gzip和LZO等,您可以根据实际情况选择最优算法。三、

vscode 無法安裝擴展 vscode 無法安裝擴展 Apr 15, 2025 pm 07:18 PM

VS Code擴展安裝失敗的原因可能包括:網絡不穩定、權限不足、系統兼容性問題、VS Code版本過舊、殺毒軟件或防火牆干擾。通過檢查網絡連接、權限、日誌文件、更新VS Code、禁用安全軟件以及重啟VS Code或計算機,可以逐步排查和解決問題。

vscode怎麼在終端運行程序 vscode怎麼在終端運行程序 Apr 15, 2025 pm 06:42 PM

在 VS Code 中,可以通過以下步驟在終端運行程序:準備代碼和打開集成終端確保代碼目錄與終端工作目錄一致根據編程語言選擇運行命令(如 Python 的 python your_file_name.py)檢查是否成功運行並解決錯誤利用調試器提升調試效率

apache是什麼語言寫的? apache是什麼語言寫的? Apr 13, 2025 pm 12:42 PM

Apache是用C語言編寫的。該語言提供了速度、穩定性、可移植性和直接硬件訪問,使其成為網絡服務器開發的理想選擇。

See all articles