zoukankan      html  css  js  c++  java
  • 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




        

        

  • 相关阅读:
    Nodejs学习笔记(4) 文件操作 fs 及 express 上传
    Nodejs学习笔记(3) 创建服务器:Web 模块(http)与 express 框架
    Nodejs学习笔记(2) 阻塞/非阻塞实例 与 Nodejs事件
    VS code自定义用户代码片段snippet
    Nodejs学习笔记(1) Nodejs安装+借助express模块简单部署服务器
    jQuery学习笔记(1) 初识jQuery
    jQuery学习笔记(2) jQuery选择器
    第八章 Python之常用模块
    selenium元素和浏览器操作
    selenium元素定位
  • 原文地址:https://www.cnblogs.com/zr520/p/3928157.html
Copyright © 2011-2022 走看看