標籤:style blog color 使用 io 資料 ar 2014
使用分區資料表:
分區資料表和merge資料表具有相似的作用,但是分區資料表確確實實是一個資料表
,不像merge是列出資料表的邏輯關係,並且分區資料表可以包括像myisam以外的
的資料表。
建立分區資料表:
create table 裡給出資料列和索引,然後用partition by 定義一個用來把資料行分配
到各個分區的分區函數:[將資料表分成四個區]
create table log_partition( dt datetime not null, info varchar(100) not null, index(dt)) partition by range(year(dt)) ( partition p0 values less than (2010), partition p1 values less than (2011), partition p2 values less than (2012), partition p3 values less than maxvalue );
將maxvalue再進行分區
alter log_partition reorganize partitioninto ( partition p4 values less than (2013),partition p5 values less than (2014),partition p6 values less than maxvalue);
分區被包含在分區資料表所屬於的資料庫的子目錄中,需要使用data_directory和index_dirctory分區選項;
federated(同盟)引擎
可以訪問其他主機由另一個mysql伺服器管理的資料表
刪除資料表:
drop table table_name1,table_name2,...]
在不確定刪除的資料庫是否存在時,使用drop table if exist table_name,在建立指令碼的時候使用if exist 會更加的安全,
如要刪除臨時資料表加上temporary關鍵字:drop temporary table table_name;
建立索引:
唯一索引:不允許索引項目本身出現重複的值(primary,unqiue)
普通索引:允許索引出現重複值
fulltext索引:全文索引,只適合myisam引擎
spatial索引只能使用與myisam資料表,只用於not null屬性,所涉及的列全部帶索引
hash(散列索引):這是memory的預設索引類型,但是memory索引還可以使用btree;
hash是精確尋找,比較尋找的時候使用btree更好
使用alter table和create index給現有資料表添加索引
alter table table_name add [index,unique,primary key,fulltext,spatial] index_name(index_columns) ps:index_name是可選的
如果某個索引是primary key和spatial,那麼帶索引的必須是not null屬性
如果想限制獨不能重複的值,可以建立primary key或者unique索引
(1)但是每一個資料表只有一個primary key,而unique卻可以有多
(2)primary key不能包括null值,但是unqie卻可以,而且可以使多個null值
除了primary key,其他的索引幾乎都可以使用create index語句:create index index_name on table_name(index_name)(一次只能建立一個索引)
在建立表的時候定義索引:
create table table_name(id int,index [index_name](id));對於primary key和unqie來說可以是:create table table_name(id int primary key[unqie]);
menory的預設索引是hash(散列索引),但用memory資料表進行範圍比較(id<100)建立btree比hash更好
create table tb_name(id int,index using btree(id))engine=memory;
對某個字串首碼編輯索引,文法是columns(n)n是前面的n個字元
create table tb_name(name char(30) NOT NULL,adress binary(60) NOT NULL,index(name(10)),index(adress(15)));
對於blob和text資料列則只能建立首碼型索引
重建索引:
repair table table_name quick;
查看索引:
show index from table_name或show keys from table_name ps:查看index_name
刪除索引:
drop index index_name on tb_name
alter table tb_name drop index index_name