資料庫建立記憶體表__資料庫

來源:互聯網
上載者:User
   1、記憶體表,就是放在記憶體中的表,所使用記憶體的大小可通過My.cnf中的max_heap_table_size指定,如max_heap_table_size=1024M,記憶體表與暫存資料表並不相同,暫存資料表也是存放在記憶體中,暫存資料表最大所需記憶體需要通過tmp_table_size = 128M設定。當資料超過暫存資料表的最大值設定時,自動轉為磁碟表,此時因需要進行IO操作,效能會大大下降,而記憶體表不會, 記憶體表滿後,會提示資料滿錯誤。    2、 暫存資料表和記憶體表都可以人工建立,但暫存資料表更多的作用是系統自己建立後,組織資料以提升效能,如子查詢,暫存資料表在多個串連之間不能共用。這裡只討論記憶體表。            建立記憶體表的方式:
 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;
    

      記憶體表的特性

  ·記憶體表的表定義是存放在磁碟上的,副檔名為.frm, 所以重啟不會丟失。

  ·記憶體表的資料是存放在記憶體中的,所以重啟會遺失資料。

  ·記憶體表使用一個固定的記錄長度格式。

  ·記憶體表不支援BLOB或TEXT列,比如varchar與text欄位就不會被支援。

  ·記憶體表支援AUTO_INCREMENT列和對可包含NULL值的列的索引(網上大多說不支援,這是錯誤的)。記憶體表支援大於(>) 小於( <)操作,網上也說不支援。

  ·mysql重啟後,主鍵、自增、索引仍然存在,只是資料丟失。這也是對網上的一些錯誤文字糾正。

  ·記憶體表表在所有用戶端之間共用(就像其它任何非TEMPORARY表)。   ·MEMORY儲存引擎執行HASH和BTREE索引。你可以通過添加一個如下所示的USING子句為給定的索引指定一個或另一個:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.