mysql8支持myISAM_mysql菜鸟手迹8--mysql存储引擎之MyISAM
MyISAM可以將表壓縮為只讀表來節(jié)省空間。使用myisampack工具來進行表壓縮。
MyISAM支持全文索引;一般使用instr()來替代。
myisam在寫的時候,會產生一個表級鎖。myisam鎖的時候使用一個lock命令,lock類型有write鎖(只有當前線程可以做讀寫刪操作),read鎖(其他線程可以讀,當前線程可以讀寫刪),read local(鎖定當前表,當前顯存不能插入數(shù)據(jù),其他線程可以進行插入,但不能刪除加鎖時的數(shù)據(jù))。
查詢標識符,使用LOW_PRIORITY? HIGH_PRIORITY 來改變執(zhí)行的優(yōu)先級;select high_priority? * from t ;插入,刪除,更改的優(yōu)先級比select高;使用read local 鎖之后,另一個線程是可以插入的,但是insert的優(yōu)先級使用LOW_PRIORITY 時,就不能插入了;使用delayed來做到延遲插入 ,insert? delayed into t values ('a');
MyISAM 引擎的數(shù)據(jù)存儲結構很清楚,每個表的信息都存放在3個文件中,可以通過復制這3個文件,實現(xiàn)對數(shù)據(jù)表的備份。在拷貝的時候最好是先關閉服務器。
在創(chuàng)建表的時候,可以通過max_rows ,min_rows來指定數(shù)據(jù)表的最大最小行數(shù)。表中的數(shù)據(jù)可以比這個指定的最大行數(shù)大,也可以比指定的最小行數(shù)小,mysql只是根據(jù)我們的指示標識符決定內部指令的大小。
show? global variables like '%point%' 默認 myisam_data_pointer_size =6 也就是2的48次方字節(jié)的數(shù)據(jù)。
MyISAM在倒數(shù)據(jù)的時候,會先將數(shù)據(jù)倒晚,然后在鍵索引,這個比倒一條數(shù)據(jù)建一個索引要快。導出數(shù)據(jù):select * from t into outfile '/tmp/a.txt' fields terminated by ',' encloesd by '"';清空表: truncate table t; 導入數(shù)據(jù):load data infile '/tmp/a.txt' into table t fields terminated by ',' enclosed by '"';
MyISAM 引擎在遇到磁盤容量不足的時候,不會報錯,它會把這個操作掛起,等磁盤空間夠了之后,再插入數(shù)據(jù)!
MyISAM 行存儲格式:固定行格式,動態(tài)行格式,壓縮行格式。MyISAM的行格式是根據(jù)定義字段的類型而定的,如果使用了可變長度的數(shù)據(jù)類型,就會產生動態(tài)行格式。如果使用的是固定長度的數(shù)據(jù)類型,就會產生固定行格式;
固定行格式:每行都有固定的尺寸;行存儲的位置在行長度整數(shù)被的地方,方便查找;固定長度占用空間大;會自動過濾空格;
動態(tài)行格式:每行長度不一樣,相對于固定行格式,不易被查找,占用空間小,更容易產生碎片;不會過濾空格;
壓縮行格式
show table status? like 't'? \G;查看一些表信息。
總結
以上是生活随笔為你收集整理的mysql8支持myISAM_mysql菜鸟手迹8--mysql存储引擎之MyISAM的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2020年度工作计划_2020最新年度个
- 下一篇: linux 禁用smb服务,Samba