(1)准备环境

mysql> create table t1(id int,name varchar(50));
mysql> \d $$
mysql> create procedure autoinsert_t1()
begin
declare i int default 1;
while(i<200000)do
insert into school.t1 values(i,'ccc');
set i=i+1
;
end while;
END $$
mysql> \d ;
mysql> show create procedure autoinsert_t1\G
mysql> call autoinsert_t1();

(2)创建索引

1)创建表时创建索引

创建普通索引:mysql> create table departname(id int,name varchar(50),comment varchar(50),index(name));

创建唯一索引:mysql> create table department2(id int,name varchar(50),comment varchar(50),unique index(name));

创建全文索引:mysql> create table department3(id int,name varchar(50),log text,fulltext index(log)); \针对文章给文章内容起索引

创建多列索引:mysql> create table department5(id int,name varchar(50),comment varchar(50),index index_name_comment(name,comment));

\创建多列索引建议给索引起个名字

2)在已存在表上创建索引:create

语法:create [unique|fulltext|spatial] index 索引名 on 表名(字段[(长度)] [ASC|DESC])

创建普通索引:mysql> create index index_name on department(name); \索引关键字MUL

创建唯一索引:mysql> create unique index index_id on department(id);

创建全文索引:mysql> create fulltext index index_name on department(name);

创建多列索引:mysql> create index index_name_comment on department(name,comment);

3)在已存在表上创建索引:alter table

语法:alter table 表名 add [unique|fulltext|spatial] index 索引名(字段[(长度)] [ASC|DESC])

创建普通索引:alter table department add index index_name(name);

创建唯一索引:alter table department add unique index index_name(name);

创建全文索引:alter table department add fulltext index index_name(name);

创建多列索引:alter table department add index index_name_comment(name,comment);

(3)管理索引

1)查看索引

语法:show create table 表名\G

2)测试索引

语法:explain select * from 表名 where 条件

3)删除索引

语法:drop index 索引名 on 表名;

mysql> drop index index_name on department6;

注意:先使用show create table 表名\G 查看索引名字,例如 KEY index_name (name) index_name 就是索引名字

(4)测试索引:

未使用索引之前:注意key和rows

mysql> explain  select * from t1 where id=190000;
+----+-------------+-------+------------+------+---------------+------+---------+------+--------+----------+-------------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+-------------+-------+------------+------+---------------+------+---------+------+--------+----------+-------------+
| 1 | SIMPLE | t1 | NULL | ALL | NULL | NULL | NULL | NULL | 200186 | 10.00 | Using where |
+----+-------------+-------+------------+------+---------------+------+---------+------+--------+----------+-------------+

创建索引之后:

mysql> explain  select * from t1 where id=190000;
+----+-------------+-------+------------+------+---------------+----------+---------+-------+------+----------+-------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+-------------+-------+------------+------+---------------+----------+---------+-------+------+----------+-------+
| 1 | SIMPLE | t1 | NULL | ref | index_id | index_id | 5 | const | 1 | 100.00 | NULL |
+----+-------------+-------+------------+------+---------------+----------+---------+-------+------+----------+-------+
1 row in set, 1 warning (0.00 sec)

使用索引:查询语句使用where 条件,条件使用的列必须是索引

(八)MySQL索引操作的更多相关文章

  1. MySQL索引操作

    创建普通索引 CREATE INDEX index_name ON table_name(column1,column2); 另一种建立方式: ALTER TABLE table_name ADD I ...

  2. mysql 索引及其原理

    mysql 索引 KEY与INDEX的区别: KEY is something on the logical level, describes your table and database desi ...

  3. MySQL索引的缺点以及MySQL索引在实际操作中有哪些事项

    以下的文章主要介绍的是MySQL索引的缺点以及MySQL索引在实际操作中有哪些事项是值得我们大家注意的,我们大家可能不知道过多的对索引进行使用将会造成滥用.因此MySQL索引也会有它的缺点: 虽然索引 ...

  4. Mysql之表的操作与索引操作

    表的操作: 1.表的创建: create table if not exists table_name(字段定义); 例子: create table if not exists user(id in ...

  5. 着重基础之—MySql 不能遗忘的索引操作

    着重基础之—MySql 不能遗忘的索引操作 关于MySql索引的基础知识我就不在这里写了,我不太想当信息的搬运工. 技巧分享:Workbench 作为一款专为MySQL设计的ER/数据库建模工具.除了 ...

  6. Mysql高级操作学习笔记:索引结构、树的区别、索引优缺点、创建索引原则(我们对哪种数据创建索引)、索引分类、Sql性能分析、索引使用、索引失效、索引设计原则

    Mysql高级操作 索引概述: 索引是高效获取数据的数据结构 索引结构: B+Tree() Hash(不支持范围查询,精准匹配效率极高) 树的区别: 二叉树:可能产生不平衡,顺序数据可能会出现链表结构 ...

  7. 第二百八十六节,MySQL数据库-MySQL事务操作(回滚)

    MySQL数据库-MySQL事务操作(回滚) 事务用于将某些操作的多个SQL作为原子性操作,一旦有某一个出现错误,即可回滚到原来的状态,从而保证数据库数据完整性. 举例:有这样一张表 从表里可以看出张 ...

  8. [MySQL]索引类型总结和使用技巧以及注意事项

    一.普通索引 这是最基本的索引,它没有任何限制.它有以下几种创建方式: 1.创建索引 CREATE INDEX [indexName] ON [mytable] ([column][(length)] ...

  9. 深入浅出分析MySQL索引设计背后的数据结构

    在我们公司的DB规范中,明确规定: 1.建表语句必须明确指定主键 2.无特殊情况,主键必须单调递增 对于这项规定,很多研发小伙伴不理解.本文就来深入简出地分析MySQL索引设计背后的数据结构和算法,从 ...

随机推荐

  1. TCP的挥手协议和握手协议

    三次握手协议:三次握手协议的主要过程是交互彼此之间的初始序列号,如果没有确认的ACK帧可以么?肯定是可以的 client A -------> server B client A 发送了自己的初 ...

  2. BZOJ4311 向量(线段树分治+三分)

    由点积的几何意义(即投影)可以发现答案一定在凸壳上,并且投影的变化是一个单峰函数,可以三分.现在需要处理的只有删除操作,线段树分治即可. #include<iostream> #inclu ...

  3. AGC016C +/- Rectangle(构造)

    题目大意:给定H,W,h,w四个数,求是否满足矩阵的全部数之和和正数,h行w列之和为负数 如果h和w恰好是H,W的约数,则肯定不存在 否则肯定存在 只需要把h,w内每个元素填的足够大,然后小矩形的最后 ...

  4. Android tips tool 发现的性能问题(转载翻译)

    先翻译刚好在研究到的一段,其余的无限期待续. 1.ObsoleteLayoutParam不起作用的标签 Invalid layout param in a LinearLayout: layout_c ...

  5. 微信小程序使用原生WebSokcet实现断线重连及数据拼接

    以前做小程序为了应急找了个插件去链接WebSokcet,文章传送门. 回过头在新项目中再次使用时出现了些许问题,不一一赘述.遂决定好好用一下原生的WebSokcet. 一.说明 1.小程序原生的Web ...

  6. springboot搭建web项目(转)

    转:http://blog.csdn.net/linzhiqiang0316/article/details/52589789 这几天一直在研究IDEA上面怎么搭建一个web-mvc的SpringBo ...

  7. [Evernote]印象笔记使用经验技巧

    一    软件使用      现在使用Windows客户端的印象笔记 + iPhone移动端印象笔记 + chrome浏览器剪藏插件.      在试用了很多云笔记后,还是选择了印象笔记,并且有许多的 ...

  8. 【洛谷 P1651】 塔 (差值DP)

    题目链接 题意:\(n\)个木块放到两个塔里,每个木块可放可不放,使得两塔高度相同且高度最大,求最大高度. 这个差值\(DP\)的思维难度还是很大的,没想出来,我就打了一个\(dfs\)骗了好像\(2 ...

  9. HDU 1162 Eddy's picture (最小生成树 普里姆 )

    题目链接 Problem Description Eddy begins to like painting pictures recently ,he is sure of himself to be ...

  10. 也说JS脚本加载控制

    问题背景 前端采用的 iframe + html 做后台管理系统.现在js.jquery插件非常多,每次页面都是引用就类似这样: <script src="../Scripts/jqu ...