MySQL的資料表

2021-08-29 10:37:20 字數 1119 閱讀 2332

mysql中主要使用到三種資料表:myisam、innodb與heap。

heap是儲存在記憶體中的資料表,如果計算機關閉或重啟或者mysqld程序崩潰,資料表就不存在,而且無法恢復了,但是其速度飛快。heap的限制也比較多,不允許使用***text和***blob資料型別,只允許使用=和<=>操作符來搜尋記錄(不允許使用<、>、<=或=>操作符);不支援auto_increment屬性;只允許對not null資料列進行索引。

innodb與myisam都是儲存在硬碟上的資料表,其中innodb是mysql公司自己開發的引擎,而innodb是另外一家公司開發的,在進行商業授權時,支援innodb的**要貴一點,但是innodb支援事務,而myisam不支援事務。

相較於myisam,innodb有以下優點:

支援事務:就是一大串指令一起執行,如果中間有一行出錯,那麼恢復到這串指令執行前的狀態(我是這麼理解的)。

資料行級鎖定外來鍵約束條件(這個我還不太清楚,等清楚了再詳細說明)

崩潰恢復:在發生崩潰後,innodb資料表能夠迅速地自動恢復到乙個穩定可用的狀態。

innodb的單條資料記錄長度占用8000個位元組,text和blob資料列列只有前512位元組是儲存在資料記錄裡的。

innodb儲存空間佔用量比myisam大的多,不支援全文索引,不能用來儲存gis資料,count函式的速度比myisam的count速度要慢的多。

myisam資料表:

myisam又分為靜態(myisal static)與動態(myisam dynamic)兩種。

如果資料表裡的資料列各自都有預先定義好的固定長度,mysql自動選擇靜態資料表型別,這種表的資料訪問效率非常高,安全性也相當高,即使出現檔案受損或其他問題,資料記錄的撮和恢復工作也比其他型別的資料表容易。

如果在資料表裡有且只有乙個varchar、***text或***blob欄位,mysql將自動選擇動態資料表型別,動態表對儲存空間要小的多,如果對這類表進行頻繁的更新,會產生很多碎片,要經常使用optimize table來優化。

可以使用myisamchk命令對myisam表進行壓縮,表壓縮後功能會受到很大限制,例如不能進行update

mysql資料表命令是 MySQL資料表操作命令

mysql語句 1 修改表名 rename table 舊表名 to 新錶名 2 修改字段型別 alter table 表名 modify column 欄位名 字段型別 長度 3 修改欄位名稱和型別 alter table 表名 change 現有欄位名稱 修改後欄位名稱 資料型別 4 增加字段 ...

MySQL資料表型別

mysql資料表支援六種型別 分別是 bdb heap isam merge myisam innobdb,這六種又分為兩類,單獨一類是bdb,稱為 事務安全型 transaction safe 其餘都屬於第二類,稱為 非事務安全型 non transaction safe 下面詳細介紹這些表 事務...

Mysql資料表備份

用mysqldump備份資料 同mysqlimport一樣,也存在乙個工具mysqldump備份資料,但是它比sql語句多做的工作是可以在匯出的檔案中包括sql語 句,因此可以備份資料庫表的結構,而且可以備份乙個資料庫,甚至整個資料庫系統。mysqldump options database tab...