六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

對于Mysql數據庫的知識總結

[摘要]2017年6月8日,天氣陰。心情晴。 連續做夢兩個晚上了,昨晚竟然夢見一個很長時間不聯系的初中同學了,早上上班的路上聊了聊。女孩現在出差在貴州,風景秀美的地方。我說“你現在生活很滋潤”。女孩說“那是你沒有看到我不滋潤的一面”。確實,在生活中我們總是把自己光鮮的一面展示給別人,而把落魄的一面“...
2017年6月8日,天氣陰。心情晴。

連續做夢兩個晚上了,昨晚竟然夢見一個很長時間不聯系的初中同學了,早上上班的路上聊了聊。女孩現在出差在貴州,風景秀美的地方。我說“你現在生活很滋潤”。女孩說“那是你沒有看到我不滋潤的一面”。確實,在生活中我們總是把自己光鮮的一面展示給別人,而把落魄的一面“偽裝起來”。

昨天博客上有博友問我問題,竟然稱呼我為“大神”,心里慌的很,因為自己很清楚距離這個“大神”相差甚遠,所以得加倍努力,向著“大神”的目標前進。

博友問的問題是關于Mysql數據庫的,其中涉及數據引擎修復、優化數據表語句,之前從來沒有考慮過這些問題,更沒有用過。所以找了一些資料了解了一下,現在把自己找到的資料總結如下。

1.Mysql數據庫存儲引擎

概念:

存儲引擎其實就是如何實現存儲數據,如何為存儲的數據建立索引以及如何更新,查詢數據等技術實現的方法。MySQL中的數據用各種不同的技術存儲在文件(或內存)中,這些技術中的每一種技術都使用不同的存儲機制,索引技巧,鎖定水平并且最終提供廣泛的不同功能和能力。在MySQL中將這些不同的技術及配套的相關功能稱為存儲引擎。

(1)innoDB存儲引擎

①innodb存儲引擎的mysql表提供了事務,回滾以及系統崩潰修復能力和多版本并發控制的事務安全。

②innodb支持自增長列(auto_increment),自增長列的值不能為空,如果在使用的時候為空的話怎會進行自動從現有的值開始增長,如果有但是比現在的還大,則就保存這個值。

③innodb存儲引擎支持外鍵(foreign key),外鍵所在的表稱為子表(或從表),而所依賴的表稱為父表(或主表)。

④innodb存儲引擎最重要的是支持事務,以及事務相關聯功能。

⑤innodb存儲引擎支持mvcc的行級鎖。

⑥innodb存儲引擎索引使用的是B+Tree。

(2)MyISAM存儲引擎

1)MyISAM 這種存儲引擎不支持事務,不支持行級鎖,只支持并發插入的表鎖,主要用于高負載的select。

2)MyISAM 類型的表支持三種不同的存儲結構:靜態型、動態型、壓縮型。

靜態型:就是定義的表列的大小是固定(即不含有:xblob、xtext、varchar等長度可變的數據類型),這樣mysql就會自動使用靜態myisam格式。

使用靜態格式的表的性能比較高,因為在維護和訪問的時候以預定格式存儲數據時需要的開銷很低。但是這高性能是由空間換來的,因為在定義的時候是固定的,所以不管列中的值有多大,都會以最大值為準,占據了整個空間。

動態型:如果列(即使只有一列)定義為動態的(xblob, xtext, varchar等數據類型),這時myisam就自動使用動態型。

雖然動態型的表占用了比靜態型表較少的空間,但帶來了性能的降低,因為如果某個字段的內容發生改變則其位置很可能需要移動,這樣就會導致碎片的產生。隨著數據變化的怎多,碎片就會增加,數據訪問性能就會相應的降低。

對于因為碎片的原因而降低數據訪問性,有兩種解決辦法:

a、盡可能使用靜態數據類型。

b、經常使用optimize table語句,他會整理表的碎片,恢復由于表的更新和刪除導致的空間丟失。

如果存儲引擎不支持 optimize table , 則可以轉儲并重新加載數據,這樣也可以減少碎片。

壓縮型:如果在這個數據庫中創建的是在整個生命周期內只讀的表,則這種情況就是用myisam的壓縮型表來減少空間的占用。

3)MyISAM也是使用B+tree索引,但是和Innodb的在具體實現上有些不同。

(3)MEMORY存儲引擎

①memory存儲引擎相比前面的一些存儲引擎,有點不一樣,其使用存儲在內存中的數據來創建表,而且所有的數據也都存儲在內存中。

②每個基于memory存儲引擎的表實際對應一個磁盤文件,該文件的文件名和表名是相同的,類型為.frm。該文件只存儲表的結構,而其數據文件,都是存儲在內存中,這樣有利于對數據的快速處理,提高整個表的處理能力。

③memory存儲引擎默認使用哈希(HASH)索引,其速度比使用B+Tree型要快,如果讀者希望使用B樹型,則在創建的時候可以引用。

④memory存儲引擎文件數據都存儲在內存中,如果mysqld進程發生異常,重啟或關閉機器這些數據都會消失。所以memory存儲引擎中的表的生命周期很短,一般只使用一次。

(4)BlackHole存儲引擎(黑洞引擎)

支持事務,而且支持mvcc的行級鎖,主要用于日志記錄或同步歸檔,這個存儲引擎除非有特別目的,否則不適合使用!

2.Mysql下優化表和修復表

隨著mysql的長期使用,可以通過修復表來優化,優化時減少磁盤占用空間,方便備份。

REPAIR TABLE `table_name` 修復表 OPTIMIZE TABLE `table_name` 優化表

REPAIR TABLE ——用于修復被破壞的表。
OPTIMIZE TABLE—— 優化表,用于回收閑置的數據庫空間。當表上的數據行被刪除時,所占據的磁盤空間并沒有立即被回收,使用了OPTIMIZE TABLE命令后這些空間將被回收,并且對磁盤上的數據行進行重排。

注意:是磁盤上,而非數據庫。
多數時間并不需要運行OPTIMIZE TABLE,只需在批量刪除數據行之后,定期(每周一次或每月一次)進行一次數據表優化操作即可,只對那些特定的表運行。

以上就是關于Mysql數據庫的知識總結的詳細內容,更多請關注php中文網其它相關文章!


學習教程快速掌握從入門到精通的SQL知識。




主站蜘蛛池模板: 中文字幕日韩专区精品系列 | 人人揉人人添人人捏人人看 | 亚洲日本在线观看网址 | 婷婷桃色网 | 日本日本在线观看视频 | 四虎国产精品永久地址48 | 我要看黄色毛片 | 婷婷色九月综合激情丁香 | 一二三四日本高清免费看 | 速度与激情9免费观看 | 欧美一区二区三区免费观看视频 | 欧美专区日韩 | 青久在线| 欧美线人一区二区三区 | 天天爱天天操天天射 | 午夜免费观看_视频在线观看 | 青青热久免费精品视频网站 | 亚洲三级中文字幕 | 中文字幕一区二区三区四区五区人 | 色欧美在线视频 | 亚洲爱爱图片 | 亚洲人与牲动交xxxxbbbb | 速度与激情9完整版免费观看 | 日韩欧美精品在线 | 中文字幕第99页 | 亚洲va精品中文字幕 | 亚洲大片免费观看 | 性天堂网 | 午夜免费 | 亚洲在成人网在线看 | 日本一区二区三区视频在线 | 日韩av线上| 日本高清视频在线播放 | 日韩精品手机在线 | 日韩精品欧美成人 | 热re久久精品国产99热 | 深夜福利免费视频 | 亚洲 欧美 中文 日韩专区 | 亚洲最大看欧美片网站 | 天天谢天天干 | 欧美一级性生活视频 |