MySQL语句学习(六)--mysql的索引简单使用

一、mysql 索引

1、索引快速入门

因为现在使用的mysql默认存储引擎是Innodb,所以本篇文章重点讲述Innodb下的索引

在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。

对于海量数据库,查询消耗大量的代价,为某列创建索引,会节省大量的时间--形成了一个索引数据结构,比如二叉树索引

2、索引的类型

1、主键索引:主键自动的为主索引(primary key)

2、唯一索引(unique)

3、普通索引(index)

4、全文索引(fulltext)---适用于MyISAM

      一般开发,不使用mysql自带的全文索引,二十使用:全文搜索Solr和ElasticSearch

CREATE TABLE t1

       (id INT PRIMARY KEY, ---主键,同时也是索引,成为主键索引

        `name` VARCHAR(32),

        email VARCHAR(255) UNIQUE  ---email时唯一的,同时也是索引,称为UNIQUE索引  

3、索引使用 

-- 创建索引
CREATE TABLE t25 (
            id INT , 
            `name` VARCHAR(32));

-- 查询表是否有索引
SHOW INDEXES FROM t25;

--如果某列的值,是不会重复的,则优先考虑使用 unique 索引, 否则使用普通索引
-- 添加唯一索引
CREATE UNIQUE INDEX id_index ON t25 (id);

-- 添加普通索引方式 1
CREATE INDEX id_index ON t25 (id);

-- 添加普通索引方式 2
ALTER TABLE t25 ADD INDEX id_index (id)

-- 添加主键索引
CREATE TABLE t26 (
        id INT , 
        `name` VARCHAR(32));
ALTER TABLE t26 ADD PRIMARY KEY (id)

-- 删除索引
DROP INDEX id_index ON t25

-- 删除主键索引
ALTER TABLE t26 DROP PRIMARY KEY

4、索引小结

1、比较繁琐的作为查询条件字段应该创建索引

             SELECT *FROM emp WHERE empno = 1

2、唯一性太差的字段不适合单独创建索引,即使频繁作为查询条件

             SELECT *FROM emp WHERE sex= '男'

3、更新非常频繁的字段不适合创建索引

             SELECT *FROM emp WHERE logincount = 1

4、不会出现在WHERE子句中字段不该创建索引

5、需要join连表的字段、需要排序的字段、需要group by的字段

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值