a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C > 正文

MySQL的內存表的基礎學習教程

2020-01-26 14:48:07
字體:
來源:轉載
供稿:網友

內存表,就是放在內存中的表,所使用內存的大小可通過My.cnf中的max_heap_table_size指定,如max_heap_table_size=1024M,內存表與臨時表并不相同,臨時表也是存放在內存中,臨時表最大所需內存需要通過tmp_table_size = 128M設定。當數據超過臨時表的最大值設定時,自動轉為磁盤表,此時因需要進行IO操作,性能會大大下降,而內存表不會,內存表滿后,會提示數據滿錯誤。

臨時表和內存表都可以人工創建,但臨時表更多的作用是系統自己創建后,組織數據以提升性能,如子查詢,臨時表在多個連接之間不能共享。這里只討論內存表

創建表是,用engine=heap可創建(mysql5.5中已經不支持type,以后都用engine,形成習慣)。

create table test( id int unsigned not null auto_increment primary key, state char(10), type char(20), date char(30))ENGINE=MEMORY DEFAULT CHARSET=utf8;

內存表的特性

1.對于varchar等變長類型,內存表使用固定的長度來存放;

2.內存表可以有非唯一鍵;

3.內存表不能包含BLOB或者TEXT列;

4.內存表支持AUTO_INCREMENT列;

5.內存表支持插入延遲,使讀取優先;

6.非臨時內存表和其它非內存表一樣在所有客戶端直接共享;

我們使用內存表的時候,需要注意以下幾個方面:

1.服務器內存足夠大;

2.我們創建的內存表和MySQL內部臨時表有所不同:

      內存表的數據存放在內存中,而內部臨時表(我們的query語句產生的)在恰當的時候存放在內存中,當內部臨時表變得很大時,MySQL會自動地把它轉化為 在磁盤上存儲的表,而我們創建的內存表,卻不會自動轉換。

3.當我們單獨地delete from 某個內存表的時候,不會回收內存;只有當整個表被delete的時候,才會回收內存;

4.在MySQL的主從服務器上,內存表可以被復制

內存表的一些使用限制

MySQL內存表使用哈希散列索引把數據保存在內存中,因此具有極快的速度,適合緩存中小型數據庫,但是使用上受到一些限制。

1、heap對所有用戶的連接是可見的,這使得它非常適合做緩存。

2、僅適合使用的場合。heap不允許使用xxxTEXT和xxxBLOB數據類型;只允許使用=和<=>操作符來搜索記錄(不允許& lt;、>、<=或>=);不支持auto_increment;只允許對非空數據列進行索引(not null)。
注:操作符 “<=>” 說明:NULL-safe equal.這個操作符和“=”操作符執行相同的比較操作,不過在兩個操作碼均為NULL時,其所得值為1而不為NULL,而當一個操作碼為NULL時,其所得值為0而不為NULL。

3、一旦服務器重啟,所有heap表數據丟失,但是heap表結構仍然存在,因為heap表結構是存放在實際數據庫路徑下的,不會自動刪除。重啟之后,heap將被清空,這時候對heap的查詢結果都是空的。

4、如果heap是復制的某數據表,則復制之后所有主鍵、索引、自增等格式將不復存在,需要重新添加主鍵和索引,如果需要的話。

5、對于重啟造成的數據丟失,有以下的解決辦法:
a、在任何查詢之前,執行一次簡單的查詢,判斷heap表是否存在數據,如果不存在,則把數據重新寫入,或者DROP表重新復制某張表。這需要多做一次查詢。不過可以寫成include文件,在需要用該heap表的頁面隨時調用,比較方便。
b、對于需要該heap表的頁面,在該頁面第一次且僅在第一次查詢該表時,對數據集結果進行判斷,如果結果為空,則需要重新寫入數據。這樣可以節省一次查詢。
c、更好的辦法是在mysql每次重新啟動時自動寫入數據到heap,但是需要配置服務器,過程比較復雜,通用性受到限制。
藍草目前采用的是第二種辦法。

6、一些預期可能用到的sql語句

//如果表存在,則刪除DROP TABLE IF EXISTS `abc`;//復制整張表xyz為heap表abc(包含所有數據)CREATE TABLE `abc` type=heap select * from `xyz`;//添加主鍵idALTER TABLE `abc` ADD PRIMARY KEY (`id`);//添加索引usernameALTER TABLE `abc` ADD INDEX `abc` (`username`);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 国产视频久久久 | 久久久女女女女999久久 | 国内精品视频一区二区三区 | 一级一级特黄女人精品毛片 | 91视频专区 | 亚洲一区二区三区久久 | 久久国产精品免费一区二区三区 | 免费三级网 | 日韩一区电影 | 欧美精品影院 | 日韩欧美视频一区二区三区 | 国产96在线观看 | 成人午夜精品久久久久久久蜜臀 | www.4虎| 一区二区在线视频 | 欧美国产在线视频 | 51ⅴ精品国产91久久久久久 | 麻豆精品久久 | 羞羞的视频网站 | 久久h | 四虎成人在线视频 | 91在线成人 | 久久精品国产99久久久 | 成人黄色av| 成人久久18免费 | 久久99精品久久久久国产越南 | 最新日韩av | 欧美日韩国产高清视频 | 国产成人精品久久久 | 色婷婷一区二区三区四区 | 欧美性生活免费观看 | 国产成人高清视频 | 亚洲日韩中文字幕一区 | 欧美日韩在线免费观看 | 欧美一区视频 | 日韩精品久久久久久 | 青青青草视频在线 | 亚洲欧美v国产一区二区 | 久久97视频 | 日韩精品在线一区 | 日本一区视频在线观看 |