深入探討:MySQL數(shù)據(jù)庫MyISAM與InnoDB存儲引擎的比較_MySQL教程
推薦:MySQL數(shù)據(jù)庫InnoDB數(shù)據(jù)恢復工具的使用小結詳解本篇文章是對MySQL數(shù)據(jù)庫InnoDB數(shù)據(jù)恢復工具的使用進行了詳細的總結與分析,需要的朋友參考下
MySQL有多種存儲引擎,MyISAM和InnoDB是其中常用的兩種。這里介紹關于這兩種引擎的一些基本概念(非深入介紹)。
MyISAM是MySQL的默認存儲引擎,基于傳統(tǒng)的ISAM類型,支持全文搜索,但不是事務安全的,而且不支持外鍵。每張MyISAM表存放在三個文件中:frm 文件存放表格定義;數(shù)據(jù)文件是MYD (MYData);索引文件是MYI (MYIndex)。
InnoDB是事務型引擎,支持回滾、崩潰恢復能力、多版本并發(fā)控制、ACID事務,支持行級鎖定(InnoDB表的行鎖不是絕對的,如果在執(zhí)行一個SQL語句時MySQL不能確定要掃描的范圍,InnoDB表同樣會鎖全表,如like操作時的SQL語句),以及提供與Oracle類型一致的不加鎖讀取方式。InnoDB存儲它的表和索引在一個表空間中,表空間可以包含數(shù)個文件。
主要區(qū)別:
•MyISAM是非事務安全型的,而InnoDB是事務安全型的。
•MyISAM鎖的粒度是表級,而InnoDB支持行級鎖定。
•MyISAM支持全文類型索引,而InnoDB不支持全文索引。
•MyISAM相對簡單,所以在效率上要優(yōu)于InnoDB,小型應用可以考慮使用MyISAM。
•MyISAM表是保存成文件的形式,在跨平臺的數(shù)據(jù)轉移中使用MyISAM存儲會省去不少的麻煩。
•InnoDB表比MyISAM表更安全,可以在保證數(shù)據(jù)不會丟失的情況下,切換非事務表到事務表(alter table tablename type=innodb)。
應用場景:
•MyISAM管理非事務表。它提供高速存儲和檢索,以及全文搜索能力。如果應用中需要執(zhí)行大量的SELECT查詢,那么MyISAM是更好的選擇。
•InnoDB用于事務處理應用程序,具有眾多特性,包括ACID事務支持。如果應用中需要執(zhí)行大量的INSERT或UPDATE操作,則應該使用InnoDB,這樣可以提高多用戶并發(fā)操作的性能。
常用命令:
(1)查看表的存儲類型(三種):
•show create table tablename
•show table status from dbname where name=tablename
•mysqlshow -u user -p password --status dbname tablename
(2)修改表的存儲引擎:
•alter table tablename type=InnoDB
(3)啟動mysql數(shù)據(jù)庫的命令行中添加以下參數(shù)使新發(fā)布的表都默認使用事務:
•--default-table-type=InnoDB
(4)臨時改變默認表類型:
•set table_type=InnoDB
•show variables like 'table_type'
分享:怎么重置mysql的自增列AUTO_INCREMENT初時值怎么重置mysql的自增列想必有很多的朋友都不會吧,下面與大家分享下常用的幾種方法,不懂的朋友可以了解下哈,希望對大家有所幫助
- MSSQL清空日志刪除日志文件
- 關于數(shù)據(jù)庫中保留小數(shù)位的問題
- 解析mysql與Oracle update的區(qū)別
- mysql 導入導出數(shù)據(jù)庫以及函數(shù)、存儲過程的介紹
- MySQL——修改root密碼的4種方法(以windows為例)
- 解決MYSQL出現(xiàn)Can''t create/write to file ''#sql_5c0_0.MYD''的問題
- 深入理解SQL的四種連接-左外連接、右外連接、內(nèi)連接、全連接
- 解析:內(nèi)聯(lián),左外聯(lián),右外聯(lián),全連接,交叉連接的區(qū)別
- mysql出現(xiàn)“Incorrect key file for table”處理方法
- mysql重裝后出現(xiàn)亂碼設置為utf8可解決
- 淺析一個MYSQL語法(在查詢中使用count)的兼容性問題
- 解析MySQL中INSERT INTO SELECT的使用
MySQL教程Rss訂閱編程教程搜索
MySQL教程推薦
猜你也喜歡看這些
- 如何解決DB2中出現(xiàn)的SQL1032N錯誤現(xiàn)象
- 如何設定sql server定期自動備份數(shù)據(jù)庫
- 怎樣創(chuàng)建SQL Server 2000故障轉移群集
- Sql Server 2008完全卸載方法(其他版本類似)
- 揭秘優(yōu)化SQL Server數(shù)據(jù)庫查詢的方法
- SQL Server與Oracle并行訪問的本質(zhì)區(qū)別
- SQL Server 2008中的代碼安全(六) 對稱密鑰加密
- sql里將重復行數(shù)據(jù)合并為一行數(shù)據(jù)使用逗號進行分隔
- 淺析SQL Server2005數(shù)字轉中文大寫字母
- 詳解SQL存儲過程
- 相關鏈接:
- 教程說明:
MySQL教程-深入探討:MySQL數(shù)據(jù)庫MyISAM與InnoDB存儲引擎的比較
。