5天学会mysql_mysql学习笔记 第五天

使用分区数据表:

分区数据表和merge数据表具有相似的作用,但是分区数据表确确实实是一个数据表

,不像merge是列出数据表的逻辑关系,并且分区数据表可以包括像myisam以外的

的数据表。

创建分区数据表:

create table 里给出数据列和索引,然后用partition by 定义一个用来把数据行分配

到各个分区的分区函数:[将数据表分成四个区]

create tablelog_partition(

dtdatetime not null,

infovarchar(100) not null,index(dt)

)

partitionby range(year(dt))

(

partition p0values less than (2010),

partition p1values less than (2011),

partition p2values less than (2012),

partition p3valuesless than maxvalue

);

将maxvalue再进行分区alterlog_partition reorganize partitioninto ( partition p4 values less than (2013),

partition p5values less than (2014),

partition p6valuesless than maxvalue

);

分区被包含在分区数据表所属于的数据库的子目录中,需要使用data_directory和index_dirctory分区选项;

federated(同盟)引擎

可以访问其他主机由另一个mysql服务器管理的数据表

删除数据表:

drop table table_name1,table_name2,...]

在不确定删除的数据库是否存在时,使用drop table if exists table_name,在创建脚本的时候使用if exists 会更加的安全,

如要删除临时数据表加上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)create index index_name ontable_name(index_name)create unique index index_name ontb1_name(index_name)create fulltext index index_name ontb1_name(index_name)create spatial index index_name on tb1_name(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 tabletable_name

(

idint,index [index_name](id)

);

对于primary key和unqie来说可以是:create tabletable_name

(

idint primary key[unqie]);

menory的默认索引是hash(散列索引),但用memory数据表进行范围比较(id<100)创建btree比hash更好

create tabletb_name

(

idint,indexusing btree(id)

)engine=memory;

对某个字符串前缀编辑索引,语法是columns(n)n是前面的n个字符

create tabletb_name

(

namechar(30) NOT NULL,

adressbinary(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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值