//資料表的型別及儲存位置
表引擎(engine)或者表型別
a) myisam(管理方便)
bbs_user1.frm 表結構
bbs_user1.myi 表索引
bbs_user1.myd 表資料
b) innodb
test.frm 表結構
ibdatal 儲存所有資料庫當中所有innodb表的索引和資料(共享表空間)
c) myisam和innodb的區別
1 myisam 資料表型別(引擎)更加成熟 穩定 易於管理
2 myisam 便會產生碎片空間 要經常使用 optimize table 來進行優化 而innodb不會
3 myisam 不支援事物處理 而innodb支援
4 myisam 不支援外來鍵 innodb支援
5 myisam 會產生三個檔案 .frm(表結構) .myi(表索引) .myd(表資料)
6 innodb 只會產生一檔案 .frm(表結構) 資料和索引全部存在共享表空間當中(iddatal)
7 myisam(推薦使用) 效率高於 innodb
a 如果應用程式一定要使用事務 毫無疑問選擇innodb引擎 要注意 innodb的行級鎖是有條件的 在where條件沒有使用主鍵時 照樣會鎖全表 比如delete from mytable這樣的刪除語句
b 如果應用程式對查詢效能要求較高 要使用myisam了 myisam索引和資料是分開的 而且其索引是壓縮的 可以更好地利用記憶體 所以它的查詢效能明顯優於innodb 壓縮後的索引也能節約一些磁碟空間 myisam擁有全文索引的功能 這可以極大地優化like查詢的效率
c 有人說myisam只能用於小型應用 其實這只是一種偏見 如果資料量比較大 這是需要通過公升級架構來解決 比如分表分庫 而不是單
InnoDB和MyIsAM的區別
myisam型別不支援事務處理等高階處理,而innodb型別支援 這是網上對myisam和innodb的解釋,很抽象吧,我們用白話的方式解釋一下 其實也比較簡單 所謂事務處理,就是原子性操作。打個比方,支援事務處理的innodb表,建設乙個中,發帖是給積分的。你發了乙個帖子執行乙個insert語句,...
MyISAM和InnoDB的區別
mysql預設採用的是myisam。myisam不支援事務,而innodb支援。innodb的autocommit預設是開啟的,即每條sql語句會預設被封裝成乙個事務,自動提交,這樣會影響速度,所以最好是把多條sql語句顯示放在begin和commit之間,組成乙個事務去提交。innodb支援資料行...
Myisam和InnoDB的區別
mysql預設採用的是myisam。myisam不支援事務,而innodb支援。innodb的autocommit預設是開啟的,即每條sql語句會預設被封裝成乙個事務,自動提交,這樣會影響速度,所以最好是把多條sql語句顯示放在begin和commit之間,組成乙個事務去提交。innodb支援資料行...