最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mysql和文件系統(tǒng)的關(guān)聯(lián)詳情

 更新時(shí)間:2022年09月27日 11:21:31   作者:Java面試365  
這篇文章主要介紹了Mysql和文件系統(tǒng)的關(guān)聯(lián)詳情,Mysql常用的存儲(chǔ)引擎如InnoDB、MyISAM采用的是文件存儲(chǔ),自然和文件系統(tǒng)掛鉤,那么Mysql都有哪些地方用到了文件系統(tǒng)呢,下面我們一起進(jìn)入文章學(xué)習(xí)詳細(xì)內(nèi)容吧

前言

在Linux中采用文件系統(tǒng)管理磁盤,而Mysql常用的存儲(chǔ)引擎如InnoDB、MyISAM采用的是文件存儲(chǔ),自然和文件系統(tǒng)掛鉤,那么Mysql都有哪些地方用到了文件系統(tǒng)呢?下面聊聊

Mysql數(shù)據(jù)目錄

Mysql系統(tǒng)啟動(dòng)文件(默認(rèn)my.cnf)中可能會(huì)指定Mysql的一個(gè)全局系統(tǒng)變量datadir,這個(gè)變量可以指定Mysql的數(shù)據(jù)存儲(chǔ)目錄,

如下:

或者采用查詢變量的形式獲?。ㄏ旅嫠醒菔窘貓D都是從這個(gè)目錄出發(fā))

mysql> show variables like '%datadir%';
+---------------+-------------------------------+
| Variable_name | Value                         |
+---------------+-------------------------------+
| datadir       | /usr/local/mysql-5.7.26/data/ |
+---------------+-------------------------------+
1 row in set (0.00 sec)

數(shù)據(jù)目錄相關(guān)結(jié)構(gòu)

數(shù)據(jù)庫(kù)存儲(chǔ)結(jié)構(gòu)

每創(chuàng)建完一個(gè)數(shù)據(jù)庫(kù)會(huì)在預(yù)定義的datadir路徑下創(chuàng)建一個(gè)以數(shù)據(jù)庫(kù)名同名的文件夾

mysql> create database test_data;
Query OK, 1 row affected (0.00 sec)

創(chuàng)建完test_data文件夾,會(huì)在該文件夾下創(chuàng)建一個(gè)db.opt的文件,該文件用于存放數(shù)據(jù)庫(kù)的屬性如字符集和比較規(guī)則。

有一點(diǎn)我們需要注意系統(tǒng)自帶的數(shù)據(jù)庫(kù)有四個(gè)分別是mysql(存儲(chǔ)Mysql用戶權(quán)限等信息)、information_schema(其它數(shù)據(jù)庫(kù)描述信息)、performance_schema(存儲(chǔ)Mysql運(yùn)行時(shí)狀態(tài)等)、sys(服務(wù)器性能視圖),其中除information_schema外都會(huì)創(chuàng)建一個(gè)文件夾。

表結(jié)構(gòu)存儲(chǔ)

如給上述創(chuàng)建的test_data數(shù)據(jù)庫(kù)新建一個(gè)表

CREATE TABLE test_table (
  name varchar(100) DEFAULT NULL
) ENGINE=InnoDB

那么Mysql會(huì)在數(shù)據(jù)庫(kù)同名文件夾也就是test_data上新建一個(gè)同表名的文件test_table.frm,這個(gè)文件用于描述表的字段,索引、約束等等

表數(shù)據(jù)存儲(chǔ)

表數(shù)據(jù)存儲(chǔ)不同的存儲(chǔ)引擎,存儲(chǔ)文件是不同的,以常用InnoDB和MyISAM舉例。

InnoDB存儲(chǔ)引擎表數(shù)據(jù)存儲(chǔ)

InnoDB存儲(chǔ)引擎都是以頁(yè)為單位管理存儲(chǔ)空間的,一個(gè)數(shù)據(jù)頁(yè)的大小為16k,而InnoDB為了方便管理引入表空間的概念,一個(gè)表空間中可能包含多個(gè)數(shù)據(jù)頁(yè),當(dāng)然表空間又分為幾種如下。

系統(tǒng)表空間

從Mysql版本5.5.7到5.6.6之間的版本默認(rèn)將表數(shù)據(jù)放入系統(tǒng)表空間中,在默認(rèn)情況下數(shù)據(jù)目錄的位置會(huì)自動(dòng)生成一個(gè)文件名為ibdata1的文件,該文件大小為12M,

如下;

這個(gè)文件的大小并不是固定的,可以自增長(zhǎng),這意味著該文件存儲(chǔ)不下時(shí)可以自動(dòng)擴(kuò)充大小。

獨(dú)立表空間

在Mysql版本從5.6.6后不再存儲(chǔ)到系統(tǒng)表空間,而是存儲(chǔ)到獨(dú)立表空間,獨(dú)立意味著表與表之間的數(shù)據(jù)獨(dú)立開(kāi)來(lái),Mysql會(huì)為每一個(gè)表建立一個(gè)獨(dú)立的空間,有多少個(gè)表就有多少個(gè)獨(dú)立空間,所以當(dāng)我們執(zhí)行建表語(yǔ)句

-- 默認(rèn)InnoDB存儲(chǔ)引擎
CREATE TABLE test_table (
  name varchar(100) DEFAULT NULL
) ENGINE=InnoDB

會(huì)在當(dāng)前數(shù)據(jù)庫(kù)同名的目錄下新建一個(gè)同表名的idb文件:

至于用戶想選擇系統(tǒng)表空間還是獨(dú)立表空間可以由用戶自己決定,通過(guò)修改系統(tǒng)變量innodb_file_per_table就可以實(shí)現(xiàn),為0表示使用系統(tǒng)表空間,為1表示使用獨(dú)立表空間,這里需要注意的是修改該系統(tǒng)參數(shù)只對(duì)新建表生效,至于修改系統(tǒng)參數(shù)之前的表需要手動(dòng)修改。

MyISAM存儲(chǔ)引擎表數(shù)據(jù)存儲(chǔ)

MyISAM的存儲(chǔ)引擎和InnoDB存儲(chǔ)引擎在文件系統(tǒng)上的最大區(qū)別就是MyISAM將索引和數(shù)據(jù)文件分開(kāi),InnoDB強(qiáng)調(diào)的是索引既數(shù)據(jù),就是因?yàn)檫@樣所以MyISAM存儲(chǔ)引擎的表由三個(gè)文件描述

  • 表名.frm:描述表結(jié)構(gòu),索引,約束等。
  • 表名.MYD:存儲(chǔ)表數(shù)據(jù)。
  • 表名.MYI:存儲(chǔ)表索引。

如下創(chuàng)建測(cè)試表:

CREATE TABLE `test_table_myisam` (
  `name` varchar(100) DEFAULT NULL
) ENGINE=MyISAM

特殊視圖存儲(chǔ)

create view view_test as select * from test_table;

因?yàn)橐晥D本質(zhì)就是虛擬表,僅僅是查詢語(yǔ)句的別名,存儲(chǔ)時(shí)不保存視圖的數(shù)據(jù),僅僅只保存視圖的表結(jié)構(gòu),所以創(chuàng)建視圖僅僅會(huì)創(chuàng)建一個(gè)與視圖同名的frm文件。

到此這篇關(guān)于Mysql和文件系統(tǒng)的關(guān)聯(lián)詳情的文章就介紹到這了,更多相關(guān)Mysql文件系統(tǒng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL學(xué)習(xí)筆記2:數(shù)據(jù)庫(kù)的基本操作(創(chuàng)建刪除查看)

    MySQL學(xué)習(xí)筆記2:數(shù)據(jù)庫(kù)的基本操作(創(chuàng)建刪除查看)

    我們所安裝的MySQL說(shuō)白了是一個(gè)數(shù)據(jù)庫(kù)的管理工具,真正有價(jià)值的東西在于數(shù)據(jù)關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)是以表的形式存在的,N個(gè)表匯總在一起就成了一個(gè)數(shù)據(jù)庫(kù)現(xiàn)在來(lái)看看數(shù)據(jù)庫(kù)的基本操作
    2013-01-01
  • mysql 8.0.22 winx64安裝配置圖文教程

    mysql 8.0.22 winx64安裝配置圖文教程

    這篇文章主要為大家詳細(xì)介紹了mysql 8.0.22 winx64安裝配置圖文教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • 淺談SQLite時(shí)間函數(shù)的使用說(shuō)明與總結(jié)分析

    淺談SQLite時(shí)間函數(shù)的使用說(shuō)明與總結(jié)分析

    本篇文章是對(duì)SQLite時(shí)間函數(shù)的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • MySQL中l(wèi)ength()、char_length()的區(qū)別

    MySQL中l(wèi)ength()、char_length()的區(qū)別

    在MySQL中l(wèi)ength(str)、char_length(str)都屬于判斷長(zhǎng)度的內(nèi)置函數(shù),本文主要介紹了MySQL中l(wèi)ength()、char_length()的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • MySQL常見(jiàn)故障與優(yōu)化方式

    MySQL常見(jiàn)故障與優(yōu)化方式

    這篇文章主要介紹了MySQL常見(jiàn)故障與優(yōu)化方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教<BR>
    2024-04-04
  • MySQL密碼忘了怎么辦?MySQL重置root密碼方法

    MySQL密碼忘了怎么辦?MySQL重置root密碼方法

    本文主要介紹Windows和Linux系統(tǒng)下忘記密碼重置root密碼的方法,需要的朋友可以參考下。
    2016-05-05
  • MySQL數(shù)據(jù)庫(kù)改名的三種實(shí)現(xiàn)方式

    MySQL數(shù)據(jù)庫(kù)改名的三種實(shí)現(xiàn)方式

    這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)改名的三種實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Mysql 插入中文及中文查詢 (修改+調(diào)試)

    Mysql 插入中文及中文查詢 (修改+調(diào)試)

    此程序從pudn上下載,但源程序編譯都通不過(guò),同時(shí)又有致命錯(cuò)誤,
    2009-07-07
  • mysql快速插入大量數(shù)據(jù)的正確方法

    mysql快速插入大量數(shù)據(jù)的正確方法

    在處理大量數(shù)據(jù)時(shí)如果一條一條地插入會(huì)極大地影響效率,因此批量插入是一個(gè)更好的選擇,下面這篇文章主要給大家介紹了關(guān)于mysql快速插入大量數(shù)據(jù)的正確方法,需要的朋友可以參考下
    2024-01-01
  • MySQL無(wú)法啟動(dòng)的解決辦法

    MySQL無(wú)法啟動(dòng)的解決辦法

    這篇文章主要介紹了MySQL無(wú)法啟動(dòng)的解決辦法的相關(guān)資料,希望通過(guò)本文大家能解決數(shù)據(jù)庫(kù)不能啟動(dòng)的問(wèn)題,需要的朋友可以參考下
    2017-09-09

最新評(píng)論

南涧| 庆城县| 新余市| 堆龙德庆县| 湖南省| 额尔古纳市| 高平市| 祁阳县| 澳门| 沐川县| 平阳县| 阳山县| 旬邑县| 武川县| 新昌县| 崇阳县| 蕲春县| 镇雄县| 册亨县| 礼泉县| 双辽市| 宁城县| 来安县| 厦门市| 砀山县| 孟村| 鄯善县| 清流县| 乌恰县| 灵台县| 石门县| 山东省| 澄城县| 北京市| 思茅市| 三河市| 澄城县| 阜平县| 惠州市| 清流县| 马龙县|