mysql存儲引擎

mysql的物理文件組成包括錯誤日誌,查詢日誌,慢查詢日誌,事務日誌,二進制日誌。

    日誌文件中記錄mysql數據庫運行期間發生的變化,記錄mysql數據庫的客戶端連接狀況,sql語句的執行情況和錯誤信息。

mysql的邏輯結構可以看成是二層架構,第一層叫做SQL layes,數據庫系統處理底層數據庫之前的所有工作都在這一層完成,包括權限判斷,sql解析,執行計劃優化,query cache的處理等。第二層就是存儲引擎層,叫做storage engine layes,也是底層數據存取操作實現部分,由多種存儲引擎共同組成。

        實際上每一層都包含各自的很多模塊。

    mysql存儲引擎

            mysql5.1之前的版本是需要安裝的時候一起被編譯安裝的,

            從mysql5.1開始,mysql AB在架構改造的時候,讓存儲引擎和sqllayes各自更爲獨立,可以做到在線加載新的存儲引擎,而不影響mysql的正常運行。插件式存儲引擎的架構爲存儲引擎的加載和移出更爲靈活方便。

            主要的mysql存儲引擎插件包括myLSAM,Innodb,DDB cluster,Maria,Falcon,Memory,Archive等,最著名而且使用最爲廣泛的myLSAM和Innodb兩種存儲引擎。

        MylSAM存儲引擎是mysql5.1之前的默認存儲引擎

        myLSAM存儲引擎的表在數據庫中,每一個表都被存放爲三個以表名命名的物理文件,任何的存儲引擎都會存放在以.frm文件的表結構中,.MYD和.MYL文件分別存放了表的數據和索引數據,每個表都有且僅有這樣三個文件做爲myLSAM存儲類型的表的存儲。不管表有多少個索引,都是存放在同一個.MYL文件中。

        MyLSAM至此三種類型的索引

            B-Tree索引,就是所有索引借點都安裝balance tree的數據結構來存儲,所有的索引數據節點都在葉節點。

            R-Tree索引,存儲方式和B-Tree索引有一些區別,主要設計用於存儲空間好多維數據的字段做索引。

            Full-text索引就是全文索引,存儲結構也是B-Tree。只要爲了解決在我們需要用like查詢的低效問題。

            最經常使用的就是B-Tree索引,偶爾會使用到Fulltext,R-Tree索引一般系統中很少用到。B-Tree索引的所有字段的長度之和不能超過1000字節。

        不支持事務

        只有表鎖

        雖然每一個MyLSAM的表都是存放一個相同後綴名的.MYD文件中,但是每個文件的存放格式實際上可能並不是完全一樣。因爲MyLSAM的數據存放格式是分爲靜態固定長度,動態可變長度以及壓縮這三種格式。三種格式中是否壓縮由自己選擇,可以在創建表的時候通過ROW_FORMAT來指定compressed和defalut,也可以通過myisampack工具來進行壓縮,默認不壓縮。而在非壓縮的情況下,是靜態還是動態,就和表中字段的定義相關。只有表中有可變長度類型的字段存在,那麼該表就是DYNAMIC格式,如果沒有任何可變長度的字段,則爲FIXED格式。可以通過alter table命令,強行將一個帶有varchar類型的字段的dynamix的錶轉換爲FIXED,但那好似原VARCHAR字段會被自動轉換成CHAR類型。相反如果將FIXED轉換爲DYNAMIC,也會將CHAR類型字段轉換爲VARCHAR類型。

                    根據表的記錄估量佔用的磁盤空間

                        一個表中一行大概有多少字節

                        更具數據庫的表每條增加幾行記錄,就能算出每條要增加多少硬盤空間,就可根據數據量估算規劃多大的空間。

                        create database tanhong

                        create table tanhong.tan(stuid varchar(10) not null primary key, stunmae varchar(20) not null, stusex char(2) not null,stucardid varchar(20) not null,stucardid varchar(20) not null, birthday datetime defaukt null,address varchar(100) default null);

                        desc tanhong.tan;

                    10個字節+20個字節+2字節+20字節+8字節+100個字節=1.6MB

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章