mysql学习笔记 第五天详解数据库

使用分区数据表:
  分区数据表和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 partition into ( 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 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 on table_name(index_name) 
create unique index index_name on tb1_name(index_name) 
create fulltext index index_name on tb1_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 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

    

    

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/4422.html

(0)
上一篇 2021年7月16日
下一篇 2021年7月16日

相关推荐

发表回复

登录后才能评论