[size=medium]
1. isam : 擅長讀取,讀取速度快,且不占用大量的記憶體和儲存,缺點:不支援事務,不能容錯(說法有待商榷)
2. myisam: isam的擴充套件格式和預設的資料庫引擎;提供了isam沒有的索引支援和大量的字段管理功能,而且提供了一種稱為**鎖定的機制,來優化併發的讀寫,其代價是你需要經常執行optimize table命令,來恢復被更新機制所浪費的空間。myisam強調了快速讀取操作,這就是為什麼mysql受到了web開發如此親睞的原因,因為web大量的操作都是讀。所以大多數虛擬機器提供商和internet平台提供商支援myisam格式。缺點:不能在表損壞後修復
heap:允許只駐留在記憶體中的,駐留在記憶體中臨時表的操作要比isam和myisam多要快。但是它管理的資料都是不穩定的,如果在斷電前沒有儲存,那麼所有的資料都會丟失,在資料行被刪除的時候,他也不會浪費大量的空間,heap**在你需要使用select表示式來選擇和操控資料的時候非常有用
4.innodb:儘管要比isam和myisam慢很多,但是innodb包括了對事物處理和外來鍵的支援,這兩點都是isam和myisam沒有的。
mysql 官方對innodb是這樣解釋的:innodb給mysql提供了具有提交、回滾和崩潰恢復能力的事務安全(acid相容)儲存引擎。innodb鎖定在行級並且也在select語句提供乙個oracle風格一致的非鎖定讀,這些特色增加了多使用者部署和效能。沒有在innodb中擴大鎖定的需要,因為在innodb中行級鎖定適合非常小的空間。innodb也支援foreign key強制。在sql查詢中,你可以自由地將innodb型別的表與其它mysql的表的型別混合起來,甚至在同乙個查詢中也可以混合。
innodb是為處理巨大資料量時的最大效能設計,它的cpu效率可能是任何其它基於磁碟的關聯式資料庫引擎所不能匹敵的。
innodb儲存引擎被完全與mysql伺服器整合,innodb儲存引擎為在主記憶體中快取資料和索引而維持它自己的緩衝池。innodb儲存它的表&索引在乙個表空間中,表空間可以包含數個檔案(或原始磁碟分割槽)。這與myisam表不同,比如在myisam表中每個表被存在分離的檔案中。innodb 表可以是任何尺寸,即使在檔案尺寸被限制為2gb的作業系統上。
innodb預設地被包含在mysql二進位制分發中。windows essentials installer使innodb成為windows上mysql的預設表。
innodb被用來在眾多需要高效能的大型資料庫站點上產生。著名的internet新聞站點slashdot.org執行在innodb上。 mytrix, inc.在innodb上儲存超過1tb的資料,還有一些其它站點在innodb上處理平均每秒800次插入/更新的
一般來說:myisam適合:1.不需要事務2.頻繁的查詢,很少的插入
innodb適合:1.可靠性要求比較高,或者要求事務
2.比較頻繁的插入和修改操作,並且表鎖定的機會比較高
附上別人的測試報告:
所有的效能測試在:micrisoft window xp sp2 , intel(r) pentinum(r) m processor 1.6oghz 1g 記憶體的電腦上測試。
測試方法:連續提交10個query, 表記錄總數:38萬 , 時間單位 s
引擎型別 myisam innodb 效能相差
count 0.0008357 3.0163 3609
查詢主鍵 0.005708 0.1574 27.57
查詢非主鍵 24.01 80.37 3.348
更新主鍵 0.008124 0.8183 100.7
更新非主鍵 0.004141 0.02625 6.338
插入 0.004188 0.3694 88.21
(1)加了索引以後,對於myisam查詢可以加快:4 206.09733倍,對innodb查詢加快510.72921倍,同時對myisam更新速度減慢為原來的1/2,innodb的更新速度減慢為原來的1/30。要看情況決定是否要加索引,比如不查詢的log表,不要做任何的索引。
(2)如果你的資料量是百萬級別的,並且沒有任何的事務處理,那麼用myisam是效能最好的選擇。
(3)innodb表的大小更加的大,用myisam可省很多的硬碟空間。
在我們測試的這個38w的表中,表占用空間的情況如下:
引擎型別 myisam innodb
資料 53,924 kb 58,976 kb
索引 13,640 kb 21,072 kb
占用總空間 67,564 kb 80,048 kb
另外乙個176w萬記錄的表, 表占用空間的情況如下:
引擎型別 myisam innordb
資料 56,166 kb 90,736 kb
索引 67,103 kb 88,848 kb
占用總空間 123,269 kb 179,584 kb
原文詳見:
[/size]
Python學習札記
1 strip 去除字串中所有不想要的空白符,split 方法建立乙個列表。2 sorted bif支援複製排序。3 分片,列表推導 4 工廠函式去除掉裡列表中重複的項。5 定義乙個類時,實際上是在定義乙個定製工廠函式。6 使用dict 工廠函式或使用 可以建立乙個空字典。要訪問乙個person字典...
mysql儲存引擎學習
文章摘抄至 那麼什麼是儲存引擎呢?儲存引擎說白了就是如何儲存資料 如何為儲存的資料建立索引和如何更新 查詢資料等技術的實現方法。因為在關聯式資料庫中資料的儲存是以表的形式儲存的,所以儲存引擎也可以稱為表型別 即儲存和操作此表的型別 在oracle 和sql server等資料庫中只有一種儲存引擎,所...
MySQL學習 儲存引擎
mysql 可以將資料以不同的技術儲存在檔案 記憶體 中,這種技術就稱作從儲存引擎。不同的儲存引擎使用不同的儲存機制,索引技巧,鎖定水平,最終提供廣泛且不同的功能。mysql支援的儲存引擎 當多個連線對記錄進行修改時需要保證資料的一致性與完整性,併發控制可以通過鎖機制實現。鎖 鎖顆粒 事務是區別於檔...