索引

  索引在mysql 中也叫 '键',是存储引擎用来快速找到记录的一种数据结构.索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要.

索引优化应该是对查询性能优化最有效的手段了.索引能够轻易将查询性能提高好几个数量级.索引相当于字段的音序表,如果要查某个字,如果不使用音序表,则需要从几百页中逐页查询

索引的特点:

  创建与维护索引会消耗和很多时间与磁盘空间,但查询速度大大提高.

索引操作 - 建表创建索引

  创建表时

    语法:
create table 表名(
字段名1 数据类型 [完整性约束条件....],
字段名2 数据类型 [完整性约束条件....],
[ UNIQUE | FULLTEXT | SPATLAL ] index | key
[索引名] (字段名[(长度)] [ASC | DESC])
);

  普通创建索引示例:

    CREATE TABLE table1(
id int,
name varchar(20),
index index_name (name)
);

  唯一索引示例:

 CREATE TABLE table1(
id int,
name varchar(20) unique,
unique index index_name (name)
);

  全文索引示例:

 CREATE TABLE table1(
id int,
name varchar(20) unique,
fulltext index index_name (name)
);

  多列索引示例:

CREATE TABLE table1(
id int,
name varchar(20) unique,
index index_name (id,name)
);

索引操作 - 添加索引

  语法:(CREATE 方式)

CREATE [UNIQUE | FULLTEXT | SPATAL ] INDEX 索引名 ON 表名 (字段名[(长度)] [ ASC | DESC ]) ;

  语法:(LATER TABLE 方式)

ALTER TABLE 表名 ADD  [UNIQUE | FULLTEXT | SPATAL ] INDEX 索引名(字段名[(长度)] [ ASC | DESC ]) ;
方式1
CREATE INDEX index_name on test1(name); 方式2
ALTER TABLE test1 ADD UNIQUE INDEX index_name(name);

索引操作 - 删除索引

  语法:DROP INDEX 索引名 on 表名

DROP INDEX index_name on test1;
DROP INDEX 2 on test2; //test2 表中的第2个字段

Database学习 - mysql 数据库 索引的更多相关文章

  1. Database学习 - mysql 数据库 表操作

    mysql 数据库 表操作 创建数据表 基本语法格式: 创建数据表: create table 表名( 字段名 datatype 约束, 字段名 datatype 约束, ...... ) 修改表名 ...

  2. Database学习 - mysql 数据库 事务操作

    事务 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功. 数据库开启事务命令: start transaction   开启事务 rollback  回滚事务,即撤销指定的 ...

  3. Database学习 - mysql 数据库 多表/复合/子 查询

    多表查询 多表查询,基本规则,通过两表有关联字段的进行条件匹配查询 内连接查询 方式一: SELECT 查看字段名[,查看字段名] FROM 一表名,二表名 WHERE 一/二表.字段 = 一/二表. ...

  4. Database学习 - mysql 数据库 外键

    外键 外键约束子表的含义:如果在父表中赵达不到候选键,则不允许在子表上进行insert/update 外键预约对父表的含义:在父表上进行update/delete以更新或删除子表中有一条或多条对应匹配 ...

  5. Database学习 - mysql 数据库 数据操作

    mysql数据操作 查询语法 select * | field1,field1 ... from 表名 where 条件 group by 字段 having 筛选 order by 字段 limit ...

  6. 重新学习MySQL数据库5:根据MySQL索引原理进行分析与优化

    重新学习MySQL数据库5:根据MySQL索引原理进行分析与优化 一:Mysql原理与慢查询 MySQL凭借着出色的性能.低廉的成本.丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库.虽然性能 ...

  7. 重新学习MySQL数据库4:Mysql索引实现原理

    重新学习Mysql数据库4:Mysql索引实现原理 MySQL索引类型 (https://www.cnblogs.com/luyucheng/p/6289714.html) 一.简介 MySQL目前主 ...

  8. 重新学习Mysql数据库4:Mysql索引实现原理和相关数据结构算法

    本文转自互联网 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial ...

  9. 重新学习MySQL数据库3:Mysql存储引擎与数据存储原理

    重新学习Mysql数据库3:Mysql存储引擎与数据存储原理 数据库的定义 很多开发者在最开始时其实都对数据库有一个比较模糊的认识,觉得数据库就是一堆数据的集合,但是实际却比这复杂的多,数据库领域中有 ...

随机推荐

  1. POJ 1661 (Help Jimmy )

    Help Jimmy Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 13669   Accepted: 4541 Descr ...

  2. Rsync 服务器端配置

    Centos 6.3 已经自带Rsync服务 安装xinetd # yum -y install xinetd 编辑/etc/xinetd.d/rsync文件,把disable = yes修改为dis ...

  3. BZOJ 4754 [JSOI2016]独特的树叶 | 树哈希判同构

    题目链接 这道题是一道判断无根树同构的模板题,判断同构主要的思路就是哈希. 一遇到哈希题,一百个人能有一百零一种哈希方式,这篇题解随便选用了一种--类似杨弋<Hash在信息学竞赛中的一类应用&g ...

  4. suoi63 树与路径 (倍增lca)

    发现对于某一个点它向上发的一条边,它被经过的次数就是这个点子树数量*不是它子树的数量 那就维护一个前缀和,然后每次拿两个端点和它们的lca的值加一加减一减,再乘上加上的值,就是这次修改后答案的增量 ( ...

  5. RocketMQ介绍与云服务器安装

    RocketMQ 介绍与概念 在github上的说法来看: Apache RocketMQ是一个分布式消息传递和流媒体平台,具有低延迟,高性能和可靠性,万亿级容量和灵活的可扩展性.它提供了多种功能: ...

  6. android sqlite批量插入数据速度解决方案

    转自 http://hi.baidu.com/hfutonline/blog/item/62b1e4de8bdf4b2e5882dd28.html 最近在做android项目的时候遇到一个问题,应用程 ...

  7. Android在初始化时弹出popwindow的方法

     http://blog.csdn.net/sxsboat/article/details/7340759 Android中在onCreate()时弹出popwindow,很多人都有过类似的需求吧,但 ...

  8. 省选模拟赛第四轮 B——O(n^4)->O(n^3)->O(n^2)

    一 稍微转化一下,就是找所有和原树差距不超过k的不同构树的个数 一个挺trick的想法是: 由于矩阵树定理的行列式的值是把邻接矩阵数值看做边权的图的所有生成树的边权乘积之和 那么如果把不存在于原树中的 ...

  9. Persits.Jpeg CMYK-to-RGB

    这几天发现有几个用户上传的图片显示一个“红叉叉”,用迅雷下载一看,原来图片的“模式”是CMYK,这样的模式是不能在IE中正常显示的. 我想起能不能用程序自动转换呢? 在网上看到利用Persits.Jp ...

  10. Quadratic.java

    /****************************************************************************** * Compilation: javac ...