MySQL基礎入門學習【14】儲存引擎

來源:互聯網
上載者:User

標籤:安全   ...   並發   目錄   狀態   使用者   文本   最大的   擴充   

 

查看資料表的建立命令:

 

【儲存引擎】: MySQL可以將資料以不同的奇數儲存在檔案(記憶體)中,這種技術就成為儲存引擎

        每一種儲存引擎都使用了不同的儲存機制、索引技巧、鎖定水平,最終提供廣泛且不同的功能

            在關係型資料庫當中,資料的儲存是以表的形式來實現的。所以儲存引擎也可以稱為表類型

       【MySQL支援的儲存引擎】:

                    MyISAM,

                    InnoDB,

                    Memory,

                    CSV,

                    Archive

 

【並發處理】: 

      並發控制: 當多個串連對記錄進行操作時保證資料的一致性和完整性的技術。

      例如兩個使用者同時登陸,其中一個要對某一行記錄刪除,而另一個使用者恰好要讀取這一行記錄,

        結果可能是正在讀取資訊的使用者報錯而退出,也可能得到一條與實際記錄不符的資訊。

        解決這類經典問題的方法就是使用並發控制: 在處理並發讀或並發寫時,系統會使用一套鎖系統來解決這個問題。

        這個鎖系統由兩類【鎖】來組成:

                  【共用鎖定(讀鎖)】: 在同一時間段內,多個使用者可以讀取同一個資源,讀取過程中資料不會發生任何變化(相互不做幹擾);

                  【獨佔鎖定(寫鎖)】: 在任何時候只能有一個使用者寫入資源,當進行寫鎖時會阻塞其他的讀鎖或者寫鎖操作(出於安全性原則的考慮)。

                    【鎖的顆粒】: 鎖定時的單位。我們其實只需要對修改的資料精確加鎖即可,而無需對所有資源均加鎖。加鎖只加最對的,而不是加最大的。

                          加鎖會增加系統的開銷: 我們通過鎖策略在鎖開銷與資料安全之間尋求一種平衡

                                                        【表鎖】:是一種開銷最小的鎖策略。 當使用者針對某資料表進行操作時,使用者即獲得了對該表的寫鎖許可權,寫鎖會禁止其他使用者的讀、寫操作。這張表只能有一個鎖。

                          【行鎖】:是一種開銷最大的鎖策略,是支援最大並行作業處理的情況。這張表中有多少條記錄就可能對每一個記錄都有一個鎖

  

 

【交易處理】:【事務】是資料庫區別於檔案系統的重要特徵之一, 用於保證資料庫的完整性。

          例如,某個使用者要通過網銀給別人轉200元,則操作如下:  

            1. 從當前賬戶減掉200元(賬戶餘額大於等於200元);

            2. 在對方賬戶增加200元。

               兩個過程應該作為一個整體出現,無論哪個過程出現了問題,都應該恢複到資料的原始狀態。

       【事務的特性——ACID】:

               1. 原子性(Atomicity)

               2. 一致性(Consistency)

               3. 隔離性(Isolation)

               4. 持久性 (Durability)

 

      

【外鍵和索引】: 【外鍵】是保證資料一致性的策略 (see http://www.cnblogs.com/jade-91/p/8672669.html)

           【索引】是對資料表中一列或多列的值進行排序的一種結構,使用索引可以快速地訪問資料表當中的特定資訊,是進行記錄快速定位的一種方法(類比書的目錄)。

            可分為普通索引、唯一索引、全文索引、btree索引、hash索引......         

         

 

【各個儲存引擎特點】

特點 MyISAM InnoDB Memory Archive
儲存限制 256TB 64TB 有 (由記憶體大小決定)
事務安全 - 支援 - -
支援索引 支援 支援 支援  
鎖顆粒 表鎖 行鎖 表鎖 行鎖
資料壓縮 支援 - - 支援
支援外鍵 - 支援 -

 

                  此外, CSV是由逗號分隔的儲存引擎,會在資料庫的子目錄中為每一表建立一個.csv檔案(一種普通的文字檔),每一個資料行佔用一個文本行,不支援索引

                BlackHole: 黑洞引擎,寫入的資料都會消失,一般用於做資料複製的中繼。

           一般最常用的儲存引擎是MyISAM 和 InnoDB這兩種儲存引擎。

           其中,MyISAM適用於事務的處理不多的情況;

              InnoDB適用於交易處理比較多,需要有外鍵支援的情況。

           大牛們也可以對資料引擎進行擴充。

 

【設定儲存引擎】

    【修改儲存引擎的方法】: 

        方法一:通過修改MySQL設定檔實現: default-storage-engine = engine_name 

        方法二:通過建立資料表命令實現:

            CREATE TABLE table_name (

            ...

            ...

            ) ENGINE = engine_name;

            

            

        方法三:通過修改資料表命令實現

            ALTER TABLE table_name ENGINE [=] engine_name;

 

            

              

 

 

 

MySQL基礎入門學習【14】儲存引擎

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.