我們在做**時,偶然遇到乙個問題:**工作時,有時需要一些不變的資源表,需要根據不同的人的資訊,去查表尋找對應需要的資料。
由於每個人都需要查表,效率就十分重要了,如果都使用磁碟中的資料,效能肯定不行,但如果儲存成為資源檔案,那麼就不能方便的利用sql語句的靈活查詢條件,查表的演算法還需自己編寫。
結合兩個問題考慮,得出的結論就是——記憶體表。
所謂「記憶體表」,即為資料儲存在記憶體中的mysql表,使用上和其他表並沒有顯著區別,主要特點是在mysql退出後,其資料會自動消失,並不會持久化。
除此以外,記憶體表可能最大的問題是不支援變長的型別,這使得在建表時要格外小心。
對於varchar等變長型別,記憶體表使用固定的長度來存放;
記憶體表可以有非唯一鍵;
記憶體表不能包含blob或者text列;
記憶體表支援插入延遲,使讀取優先;
建立記憶體表的時候,在5.5裡,需要指定表的引擎型別 engine=memory
create table `test` (
`id` int(11) auto_increment,
`name` varchar(255)
) engine=memory default charset=utf8 row_format=compact;
其餘操作:
-- 刪除資料
delete from test;
或者-- 清空表
truncate table test;
再或者-- 刪除表
drop table test;
但資料會在重啟後丟失,這點十分不便,為此,我們需要初始化記憶體表,使得其包含要使用的資料。
使用方法很簡單,直接新增到配置檔案,比如my.cnf.
新增:[server] 或者 [mysqld] 或者 [mysqld_safe]
init-file=」your file location」
請確保init-file指定的指令碼每行是乙個具體的語句,不要多行寫乙個語句。
mysql記憶體表 MySQL的記憶體表
記憶體表 顧名思義建立在記憶體中的表,真是這樣嗎?其實不然,mysql的記憶體表,表結構建立在磁碟上,資料存放在記憶體中,所以當mysql啟動著的時候,這個表是存在的,資料也是存在的,如果使用者有檢視這個表的許可權,在所有會話裡面,都可以訪問這個記憶體表的資料 當mysql重啟後,資料消失,結構還存...
mysql記憶體表 mysql建立記憶體表的方法
如何建立記憶體表?建立記憶體表非常的簡單,只需註明 engine memory 即可 複製 如下 create table tablename columnname varchar 256 not nul engine memory default charset latin1 max rows 1...
mysql記憶體表 mysql建立記憶體表的方法
如何建立記憶體表?建立記憶體表非常的簡單,只需註明 engine memory 即可 create table tablename columnname varchar 256 not nul engine memory default charset latin1 max rows 1000000...