<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                MySQL中的數據用各種不同的技術存儲在文件(或者內存)中。這些技術中的每一種技術都使用不同的存儲機制、索引技巧、鎖定水平并且最終提供廣泛的不同的功能和能力。通過選擇不同的技術,你能夠獲得額外的速度或者功能,從而改善你的應用的整體功能。 **存儲引擎主要有**: 1. MyIsam , 2. Mrg\_Myisam, 3. Memory, 4. Blackhole, 5. CSV, 6. Performance\_Schema, 7. Archive, 8. Federated , 9. InnoDB sql: `show engines\G;` --- 1. MyIsam MyIsam 存儲引擎獨立于操作系統,也就是可以在windows上使用,也可以比較簡單的將數據轉移到linux操作系統上去。這種存儲引擎在創建表的時候,會創建三個文件,一個是.frm文件用于存儲表的定義,一個是.MYD文件用于存儲表的數據,另一個是.MYI文件,存儲的是索引。操作系統對大文件的操作是比較慢的,這樣將表分為三個文件,那么.MYD這個文件單獨來存放數據自然可以優化數據庫的查詢等操作。 1. ?不支持事務,但是并不代表著有事務操作的項目不能用MyIsam存儲引擎,可以在service層進行根據自己的業務需求進行相應的控制。 2. ?不支持外鍵。 3. ?查詢速度很快。如果數據庫insert和update的操作比較多的話采用表鎖效率低(建議使用innodb)。 4. ?對表進行加鎖。 2.?Mrg_Myisam Merge存儲引擎,是一組MyIsam的組合,也就是說,他將MyIsam引擎的多個表聚合起來,但是他的內部沒有數據,真正的數據依然是MyIsam引擎的表中,但是可以直接進行查詢、刪除更新等操作。 比如:我們可能會遇到這樣的問題,同一種類的數據會根據數據的時間分為多個表,如果這時候進行查詢的話,就會比較麻煩,Merge可以直接將多個表聚合成一個表統一查詢,然后再刪除Merge表(刪除的是定義),原來的數據不會影響。 3. Memory Memory采用的邏輯介質是內存,響應速度應該是很快的,但是當mysqld守護進程崩潰的時候數據會丟失,另外,要求存儲的數據是數據長度不變的格式,比如,Blob和Text類型的數據不可用(長度不固定的)。 使用Memory存儲引擎情況: ? 1. 目標數據比較小,而且非常頻繁的進行訪問,在內存中存放數據,如果太大的數據會造成內存溢出。可以通過參數max_heap_table_size控制Memory表的大小,限制Memory表的最大的大小。 ? 2. 如果數據是臨時的,而且必須立即可用得到,那么就可以放在內存中。 ? 3. 存儲在Memory表中的數據如果突然間丟失的話也沒有太大的關系。 ? 【注】 Memory同時支持散列索引和B樹索引,B樹索引可以使用部分查詢和通配查詢,也可以使用<,>和>=等操作符方便數據挖掘,散列索引相等的比較快但是對于范圍的比較慢很多。 4.?Blackhole “黑洞”存儲引擎,他會丟棄所有的插入的數據,服務器會記錄下Blackhole表的日志,所以可以用于復制數據到備份數據庫。看其他的一些資料說:可以用來充當dummy master,利用blackHole充當一個“dummy master”來減輕master的負載,對于master來說“dummy master” 還是一個slave的角色,還有充當日志服務器等等。 5. CSV 可以將scv文件作為MySql的表來使用,但是不支持索引。CSV引擎表所有的字段都必須為非空的,創建的表有兩個一個是CSV文件和CSM文件。 6.?Performance_Schema MySQL5.5以后新增了一個存儲引擎,就是Performance_Schema,他主要是用來收集數據庫服務器的性能參數。MySQL用戶不能創建存儲該類型的表。 他提供了以下的功能: 1. 提供進程等待的詳細信息,包括鎖、互斥變量、文件信息。 2. 保存歷史的事件匯總信息,為Mysql服務器的性能做出詳細的判斷。 3. 對于新增和刪除監控時間點都非常容易,并可以隨意的改變Mysql服務器的監控周期 需要在配置文件my.cnf中進行配置才能開啟。 7. ?Archive archive是歸檔的意思,僅僅支持插入和查詢兩種功能,在MySQL5.5以后支持索引功能,他擁有很好的壓縮機制,使用zlib壓縮庫,在記錄請求的時候實時的進行壓縮,經常被用來作為倉庫使用。適合存儲大量的獨立的作為歷史記錄的數據。擁有很高的插入速度但是對查詢的支持較差。 8. Federated Federated存儲引擎是訪問MySQL服務器的一個代理,盡管該引擎看起來提供了一個很好的跨服務器的靈活性,但是經常帶來問題,默認是禁用的。 9. InnoDB InnoDB是一個事務型的存儲引擎,有行級鎖定和外鍵約束,適用于以下的場合: 1. 更新多的表,適合處理多重并發的更新請求。 2. 支持事務。 3. 可以從災難中恢復(通過bin-log日志等)。 4. 外鍵約束。只有他支持外鍵。 5. 支持自動增加列屬性auto_increment。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看