黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

mysql初識之?dāng)?shù)據(jù)文件及其他文件

系統(tǒng) 2346 0
在mysql中數(shù)據(jù)文件存放于在my.cnf中datadir指定的路徑,使用的表引擎不同產(chǎn)生的文件格式、表文件個(gè)數(shù)也會有所差異。mysql的表引擎有多種,表的擴(kuò)展名也不一樣,如innodb用“?.ibd”,archive用“.arc?”,csv用“.csv”等。
?
myisam表引擎
myisam表會產(chǎn)生三個(gè)文件:MYI、MYD、frm文件
?
frm文件:
主要存放表的元數(shù)據(jù)(meta),包括表結(jié)構(gòu)定義信息等。不論是哪個(gè)表引擎都會有一個(gè)frm文件,存放在數(shù)據(jù)庫的數(shù)據(jù)目錄下。
?
.MYI文件(索引文件):
主要存放myisam的索引信息可以被cache的內(nèi)容主要源于 .MYI文件中,每個(gè)myisam表對應(yīng)一個(gè) .myi文件,存放的位置與 .frm 、MYI一樣。
?
innodb引擎
?
使用innodb引擎時(shí),需要理解獨(dú)立表空間、共享表空間。
?
獨(dú)立表空間:每個(gè)表都會生成以獨(dú)立的文件方式來存儲,每個(gè)表都一個(gè).frm的描述文件,還有一個(gè).ibd文件。其中這個(gè)文件包括了單獨(dú)一個(gè)表的數(shù)據(jù)及索引內(nèi)容,默認(rèn)情況下它的存儲在mysql指定的目錄下。
?
獨(dú)立表空間優(yōu)缺點(diǎn):
?
優(yōu)點(diǎn):
每個(gè)表都有自己獨(dú)立的表空間;每個(gè)表的數(shù)據(jù)和索引都會存儲在各個(gè)獨(dú)立的表空間中;可以實(shí)現(xiàn) 單表 在不同的數(shù)據(jù)進(jìn)行遷移;表空間可以回收(除了drop table操作,表空不能自己回收);drop table 操作自動回收表空間,如果對統(tǒng)計(jì)分析或是日值表,刪除大量數(shù)據(jù)后可以通過 :alter table tablename engin=innodb進(jìn)行回縮不用的空間;對于使用inodb-plugin的innodb使用truncate table會使用空間收縮。;對于使用獨(dú)立表空間,不管怎么刪除 ,表空間的碎片都不會太嚴(yán)重。
?
缺點(diǎn):
?
單表增加過大,如超過100G。對于單表增長過大的問題,如果使用共享表空間可以把文件分開,但有同樣有一個(gè)問題,如果訪問的范圍過大同樣會訪問多個(gè)文件,一樣會比較慢。對于獨(dú)立表空間也有一個(gè)解決辦法是:使用分區(qū)表,也可以把那個(gè)大的表空間移動到別的空間上然后做一個(gè)連接。其實(shí)從性能上出發(fā),當(dāng)一個(gè)表超過100個(gè)G有可能響應(yīng)也是較慢了,對于獨(dú)立表空間還容易發(fā)現(xiàn)問題早做處理。
?
共享表空間:某一個(gè)數(shù)據(jù)庫所有的表數(shù)據(jù),索引文件全部都放在一個(gè)文件 中,默認(rèn)這個(gè)共享表空間的文件路徑在data目錄下,默認(rèn)的文件名為 bata1,初始化為10M。
?
共享表空間優(yōu)缺點(diǎn)
?
優(yōu)點(diǎn):可以將表空間分成多個(gè)文件存放在各個(gè)磁盤上(表空間文件大小不受表大小 的限制,如一個(gè)表可以分布在不同的文件上),數(shù)據(jù)和文件放在一起方便管理。
?
缺點(diǎn):所有的數(shù)據(jù)和索引存放 到一個(gè)文件中,將來會是一個(gè)很大的文件,雖然 可以把一個(gè)大文件分成多個(gè)小文件,但是多個(gè)表及索引在表空間中混合存儲,這樣對一個(gè)表做了大量刪除操作后表空間將有大量的空隙,特別是對統(tǒng)計(jì)分析、日值系統(tǒng)這類應(yīng)用最不適合用共享表空間。
?
?
如何開啟獨(dú)立表空間?
?
查看是否開啟獨(dú)產(chǎn)表空間:
?
mysql> show variables like '%per_table';
+-----------------------+-------+
| Variable_name ? ? ? ? | Value |
+-----------------------+-------+
| innodb_file_per_table | OFF ? |
+-----------------------+-------+
?
設(shè)置開啟:
在my.cnf文件中[mysqld] 節(jié)點(diǎn)下添加innodb_file_per_table=1
?
注:
?
innodb_file_per_table值來進(jìn)行修改即可,但是對于之前使用過的共享表空間則不會影響,除非手動的去進(jìn)行修改或者是
innodb_file_per_table=1 為使用獨(dú)占表空間
innodb_file_per_table=0 為使用共享表空間
修改獨(dú)占空表空間的數(shù)據(jù)存儲位置
innodb_data_home_dir = "C:\mysql\data\"
innodb_log_group_home_dir = "C:\mysql\data\"
innodb_data_file_path=ibdata1:10M:autoextend
innodb_file_per_table=1
參數(shù)說明:
這個(gè)設(shè)置配置一個(gè)可擴(kuò)展大小的尺寸為10MB的單獨(dú)文件,名為ibdata1。沒有給出文件的位置,所以默認(rèn)的是在MySQL的數(shù)據(jù)目錄內(nèi)。【對數(shù)據(jù)來進(jìn)行初始化的設(shè)置】
innodb_data_home_dir ? ? ? ? ? ? ?代表為數(shù)據(jù)庫文件所存放的目錄
innodb_log_group_home_dir ? ? ? 為日志存放目錄
innodb_file_per_table ? ? ? ? ? ? ? 是否使用共享以及獨(dú)占表空間來
?
以上的幾個(gè)參數(shù)必須在一起加入。
對于參數(shù)一些注意的地方
InnoDB不創(chuàng)建目錄,所以在啟動服務(wù)器之前請確認(rèn)”所配置的路徑目錄”的確存在。這對你配置的任何日志文件目錄來說也是真實(shí)的。使用Unix或DOS的mkdir命令來創(chuàng)建任何必需的目錄。
?
通過把innodb_data_home_dir的值原原本本地部署到數(shù)據(jù)文件名,并在需要的地方添加斜杠或反斜杠,InnoDB為每個(gè)數(shù)據(jù)文件形成目錄路徑。
如果innodb_data_home_dir選項(xiàng)根本沒有在my.cnf中提到,默認(rèn)值是“dot”目錄 ./,這意思是MySQL數(shù)據(jù)目錄。
?
?
replication相關(guān)文件
?
1.master.info文件
?
master.info文件存放在slave端的data目錄下,里面存的是slave對應(yīng)的master端所讀取到的相關(guān)信息,包括master的主機(jī)地地,連接用戶、密碼、端口,當(dāng)前日志位置、已讀取到的日志位置等信息。
?
2.relay log 和relay log index?
?
mysql-relay-bin.xxxxxn文件用于存放Slave端的I/O線程從Master端所讀取到的BinaryLog信息,然后由Slave端的SQL線程從該relaylog中讀取并解析相應(yīng)的日志信息,轉(zhuǎn)化成Master所執(zhí)行的SQL語句,然后在Slave端應(yīng)用。mysql-relay-bin.index文件的功能類似于mysql-bin.index,同樣是記錄日志的存放位置的絕對路徑,只不過他所記錄的不是BinaryLog,而是RelayLog。
?
3.?relay-log.info文件
?
類似于master.info,它存放通過Slave的I/O線程寫入到本地的relaylog的相關(guān)信息。供Slave端的SQL線程以及某些管理操作隨時(shí)能夠獲取當(dāng)前復(fù)制的相關(guān)信息
?
?
其他文件
?
1、systemconfigfile
?
MySQL的系統(tǒng)配置文件一般都是“my.cnf”,Unix/Linux下默認(rèn)存放在"/etc"目錄下,Windows環(huán)境一般存放在“c:/windows”目錄下面。“my.cnf”文件中包含多種參數(shù)選項(xiàng)組(group),每一種參數(shù)組都通過中括號給定了固定的組名,如“[mysqld]”組中包括了mysqld
服務(wù)啟動時(shí)候的初始化參數(shù),“[client]”組中包含著客戶端工具程序可以讀取的參數(shù),此外還有其他針對于各個(gè)客戶端軟件的特定參數(shù)組,如mysql程序使用的“[mysql]”,mysqlchk使用的“[mysqlchk]”,等等。如果讀者朋友自己編寫了某個(gè)客戶端程序,也可以自己設(shè)定
一個(gè)參數(shù)組名,將相關(guān)參數(shù)配置在里面,然后調(diào)用mysql客戶端api程序中的參數(shù)讀取api讀取相關(guān)參數(shù)。
?
2、pidfile
pid file是mysqld應(yīng)用程序在Unix/Linux環(huán)境下的一個(gè)進(jìn)程文件,和許多其他Unix/Linux服務(wù)端程序一樣,存放著自己的進(jìn)程id。
?
3、socketfile
?
socket文件也是在Unix/Linux環(huán)境下才有的,用戶在Unix/Linux環(huán)境下客戶端連接可以不通過TCP/IP網(wǎng)絡(luò)而直接使用UnixSocket來連接MySQL。

?

mysql初識之?dāng)?shù)據(jù)文件及其他文件


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論