1.myisam,innodb和memory的區別如下: 2:InnoDB存儲引擎 2.1:InnoDB具有事務,回滾,崩潰修復能力和多版本併發的事務安全 2.2:關於InnoDB的auto_increment列: 2.2.1:InnoDB支持自動增長列,此列不能爲空,且值必須唯一 2.2.2:此列必須爲主鍵。插入時,不指定值,默認是自增都的值。指定0或者NULL時,也 是自增後的值。指定合法且不存在的值,則此後的自動從該值開始 2.3:InnoDB中的Foreign Key: InnoDB支持外鍵。外鍵所在表通常稱爲子表。所依賴表稱爲父表。且父表中,被子表關聯的字段必須爲父表的主鍵。 (外鍵:可以簡單的理解爲:當對父表的數據進行更新,刪除,添加時,子表的數據也會隨之變化。例子很多,此處不舉例) 2.4:InnoDB的存儲引擎及其優缺點: InnoDB存儲引擎的存儲格式有三個文件: .frm表結構文件,此文件存放表創建時的字段定義等信息。 表的數據文件,存放在innodb_data_home_dir目錄下, 表的,存放在innodb_data_file_path目錄下 InnoDB存儲引擎具有良好的ACID特性。 InnoDB的缺點:讀寫效率相對MYISAM比較差。佔用的磁盤空間比較大。 2.5:InnoDB的理想使用場合: 高併發,更新操作比較多的表。需要使用事務的表。對自動有要求的表。 3:MYISAM存儲引擎: 3.1:MYISAM存儲引擎表的存儲有三個文件: .frm文件,存儲表的結構 .myd文件,存儲表的數據 .myi文件,存儲表的索引 3.2:MYISAM存儲引擎的存儲格式 3.2.1:靜態型 表的所有列都是靜態的(定長的)。這種情況下,維護和訪問預定義格式存儲的數據需要的開銷很低。但是,需要的空間會更多,原因是,數據在存儲的時候,使 用每個列的最大空間來存儲,有浪費的空間。當然,磁盤這個都不是問題。 3.2.2:動態型 指標的列中有動態型的列(不定長的)。優點是:使用空間少。缺點是:更新數據時,需要移動數據,產生內部碎片的同時,也降低了維護和訪問的效率。 對於這個問題,我們可以:(1)儘量的使用定長字段(2)使用optimize table語句,整理表中的碎片 3.2.3:壓縮型: 針對應用程序的聲明週期中,只讀的數據表,我們可以通過:myisampack工具轉化爲MYISAM壓縮表,以減少使用的磁盤空間 3.4:MYISAM存儲引擎的優缺點: 優點:佔用空間小,處理速度快(相對InnoDB來說) 確定:不支持事務的完整性和併發性 4:Memory存儲引擎 4.1:Memory存儲引擎的文件存儲形式 Memory存儲引擎也會再磁盤上形成一個 .frm的表結構文件,只是表的數據件並不以文件的形式存放在磁盤上。鑑於其數據存放在內存裏,因此,訪問速度更快。但需 要考慮的是:內存上數據的持久性。 4.2:Memory存儲引擎的索引類型 默認的是哈希索引,也支持BTree索引 4.3:Memory存儲引擎的週期 數據存放在內存上,一旦服務器關機,數據將不再存在 4.4:Memory存儲引擎的優缺點: Memory存儲引擎不支持變長表列 MySQL4.1.0之前,不支持auto_increment列 4.5:Memory存儲引擎的使用場合 速度要求快的,臨時數據 丟失以後,對項目整體沒有或者負面影響不大的時候。
mysql引擎myisam,innodb和memory的區別
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.