使用分区数据表:
  分区数据表和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

    

    

mysql学习笔记 第五天的更多相关文章

  1. MySQL学习笔记十五:优化(2)

    一.数据库性能评测关键指标 1.IOPS:每秒处理的IO请求次数,这跟磁盘硬件相关,DBA不能左右,但推荐使用SSD. 2.QPS:每秒查询次数,可以使用show status或mysqladmin ...

  2. Mysql学习笔记(五)数学与日期时间函数

    学习内容: 1.数学函数 2.日期时间函数 这些函数都是很常用的函数...在这里进行简单的介绍... 数学函数: mysql); //取绝对值函数 这个函数可安全地使用于 BIGINT 值. mysq ...

  3. MySQL学习笔记(五)—— 子查询及联结

    子查询: 子查询,即嵌套在其他查询中的查询.例如我们有这样几个表,顾客表,订单表,商品表,我们想知道有哪些客户买了商品A,那么我们就需要先查看哪些订单里包含了商品A,然后根据订单查出是哪些客户. my ...

  4. MySQL学习笔记(五)

    倒数第二天!冲冲冲!!! 一.索引 一个表里面可以有多个索引. 1. 索引的作用:约束与加速查找 无索引:从前到后依次查找 有索引:会为索引列创造一个额外文件(以某种格式存储).在使用索引进行查找时, ...

  5. Mysql学习笔记(五)数据查询之测试sql部分。

    正文之前,介绍mysql一些很有趣的命令. 快速的创建表,并填充表数据. create table test like  已经有的表名: inset into test select * from f ...

  6. 菜鸟的MySQL学习笔记(五)

    7.自定义函数 用户自定义函数(user-defined function,UDF)是一种对MySQL扩展的途径,其用法与内置函数相同.包含了两个必要条件,参数与返回值.没有必然内在联系. 函数可以返 ...

  7. MySQL学习笔记(五)并发时经典常见的死锁原因及解决方法

    MySQL都有什么锁? MySQL有三种锁的级别:页级.表级.行级. 表级锁:开销小,加锁快:不会出现死锁:锁定粒度大,发生锁冲突的概率最高,并发度最低. 行级锁:开销大,加锁慢:会出现死锁:锁定粒度 ...

  8. MYSQL学习笔记 (五)常用的聚合函数

    1.COUNT(e1) 语法:COUNT(e1) 参数:e1为一个表达式,可以是任意的数据类型 返回:返回数值型数据 作用:返回e1指定列不为空的记录总数 例子: 1)单独使用

  9. Mysql学习笔记(三)对表数据的增删改查。

    正文内容. 这一部分是最简单的,也是最麻烦的.简单是因为其实只包括增删该插四个部分.大体上看,增加数据.删除数据.修改数据.查询数据都不麻烦啊,我们日常都是常用的.这个谁不会呢?以前在培训机构学mys ...

随机推荐

  1. 如何在 Ubuntu 15.04 上安装带 JSON 支持的 SQLite 3.9

    欢迎阅读我们关于SQLite 的文章,SQLite 是当今世界上使用最广泛的 SQL 数据库引擎,它基本不需要配置,不需要设置或管理就可以运行.SQLite 是一个是公开领域(public-domai ...

  2. Redis教程(十三):管线详解

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/141.html 一.请求应答协议和RTT: Redis是一种典型的基于C/ ...

  3. PMP和PRINCE2

    首先先简单介绍一下,PMP是属于美国的项目管理知识体系.PRINCE2是属于英国项目体系. 美国的项目管理知识体系最主要的价值是把世界上所有跟项目管理相关的,不管是知识.最佳实践.工具技术,把它们汇总 ...

  4. mac下搭建lua环境

    mac下安装lua(可借助:rudix 地址:http://rudix.org) curl -s https://raw.githubusercontent.com/rudix-mac/rpm/201 ...

  5. Android 代码混淆之部分类不混淆的技巧

    在编写Android程序之后,我们通常要代码进行混淆编码,这样才能保证市场上我们的应用不会被别人进行反编译,然后破解,所以此时需要在发布正式版本的时候,有一些类事不能混淆的,比如实现了 Seriali ...

  6. 每天一个linux命令(28):tar命令

    通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候tar命令就是是必不可少的一个功能强大的工具.linux中最流行的tar是麻雀虽小,五脏俱全,功能强大. tar命令可以为linux ...

  7. NPM安装之后CMD中不能使用

    NPM安装之后CMD中不能使用 这个情况就是path环境变量没有添加NPM 添加环境变量并重启CMD C:\Users\Mark\AppData\Roaming\npm\ 看看这个文件夹就知道为什么要 ...

  8. Java-map-第一题 (Map)利用Map,完成下面的功能: 从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队。如果该 年没有举办世界杯,则输出:没有举办世界杯。 附:世界杯冠军以及对应的夺冠年份,请参考本章附录。 附录

    第一题 (Map)利用Map,完成下面的功能: 从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队.如果该 年没有举办世界杯,则输出:没有举办世界杯. 附:世界杯冠军以及对应的夺冠年 ...

  9. linux安装locust

    linux安装locust 1. 安装epel扩展源(目的是为了在安装Pip时不出现一堆乱七八糟的错误信息) EPEL(http://fedoraproject.org/wiki/EPEL) 是由 F ...

  10. Html与CSS快速入门02-HTML基础应用

    这部分是html细节知识的学习. 快速入门系列--HTML-01简介 快速入门系列--HTML-02基础元素 快速入门系列--HTML-03高级元素和布局 快速入门系列--HTML-04进阶概念 示例 ...