標籤:style color 使用 io strong 資料 for ar
mysql引擎:
archive(檔案)[資料插入以後不能被修改,唯讀]
blackhole[這種寫操作是刪除資料,讀操作是返回空白記錄]
CSV[在儲存資料時以逗號作為資料項目之間的分隔字元]
example[樣本(存根)儲存引擎]
Falcon[用來進行處理事務的儲存類型]
federated[用來訪問遠端資料表的儲存引擎]
InnoDB[具備外鍵支援功能的交易處理引擎]
memory[記憶體裡的資料表]
merge[用來管理多個MyISAM資料表構成的資料表集合(merg-myisam)]
myisam預設的儲存類型
NDB[mysql clustor 專用引擎]
第二部分:
no_engine_substitution設定不用預設的引擎(當建立資料表類型時不成功)
使用default-storage-engine啟動伺服器,使用一種預設的儲存引擎
show create table table_name=select condition from information_schema.tables[查看預設引擎]
使用min-Rows=n對memory引擎的最佳化
eg:
create table table_name{...}engine=memory min-rows=100;
使用max-rows和avg-row-length控制myisam的大小
改變資料表的引擎:alter table table_name type[engine]=type_name
對於建立表格時使用if not exist可以檢查是否具有相同的表格,但具有一定的風險,使用drop table if exist再執行create table
暫存資料表:
建立暫存資料表格:create temporary table table_name (也支援各種引擎),暫時性表的生命週期一般是在伺服器停止暫存資料表類型
可以和永久性表格同名,但是永久性表格會暫時性的失效,直到暫時性表失去效果。
使用like和select從其他資料表中建立新的資料表
create table table_name like _table_name,這樣建立的新資料表具有相同的類型,索引,順序,
insert into table_name select ...[select 後插入的是表資料或者其他資料],可以使用這個方法建立
一個臨時性的副本:temporary
向副本中插入其他表資料eg:insert into new_table_name select * from table_name[where...];
使用create table table_name select 將上面兩種類型一步到位,但是這種情況的資料可能對視索引或者可能失去資料屬性
但是其中可以使用cast()強制類型.
在create table 部分提供明確定義,之後再select 部分使用那些定義檢索:
create table mytd1(i int unsigned,t time,d decmal(10,5))
select i as i,cast(curtime() as time) as t,-----------------(這段話沒看懂意思==。)
ps:select 字句選擇填入資料要求。
merge資料表:
merge將myisam當做一個串連單元來處理,構成一個merge資料表的各個成員具有相同的順序,資料類型,索引等,
eg:
create table log_ccyy
( dt datetime not null,
info varchar(100) not null,
index(dt)
);
ccyy是年份的意思,假設建立log_2010,log_2011,以後在建立一個merge類型的:
create table log_merge
(dt datetime notnull,
info varchar(100) not null
index(dt)
)engine=merge union=(log_2010,log_2011)
[insert_method=[no\first\last]];
在建立新的merge單元的時候(myisam表類型),插入的位置first或者last或者no不允許插入新的資料表
log_merge中加入資料表log_2012:
alter table log_merge=(log_2010,log_2011,log_2012)