• MySQL中索引的分类和基本操作


    索引的作用:是用于快速定位实际数据位置的一种机制。

    索引在mysql中,是独立于数据的一种特殊的数据结构。

    一、索引的分类

    普通索引:利用特定的关键字,标识数据记录的位置(磁盘上的位置,盘号,柱面,扇面,磁道)。
    唯一索引:限制索引的关键字不能重复的索引。
    主键索引:限制索引的关键字不能重复,并且不能为NULL。(不能为NULL的唯一索引)。一个表中只允许有一个主索引。
    全文索引:索引的关键字,不是某个字段的值,而是字段值中有意义的词来作为关键字建立索引。
    复合索引:如果一个索引(以上四种任何都可以),是依赖于多个字段创建的化,称之为复合索引。

    一个myisam表的对应的三个文件:表结构文件.frm、数据文件.myd、索引文件.myi

    添加一个普通索引后,索引文件会变大

    二、索引的创建

    第一种方式:在创建表时,一块创建索引。

    第二种方式:建完表后,以alter方式建立索引。

    创建索引的注意事项:

    (1)较频繁的作为查询条件字段应该创建索引

    select * from emp where empno = 1

    (2)唯一性太差的字段不适合单独创建索引,即使频繁作为查询条件。比如:is_best is_new is_hot is_sale is_delete

    select * from emp where sex = ''

    (3)更新非常频繁的字段不适合创建索引,比如登录的状态。

    select * from emp where logincount = 1

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

    三、索引的删除

    删除主键索引:alter table tablename drop primary key

    在删除主键索引时,要注意是否有auto_increment属性,如果有,则先要删除该属性,才能删除主键索引。

    删除其他索引:alter table tablename drop index 索引的名字

    注意:如果没有指定索引的名字则是使用该字段名称作为索引的名字的。

    四、索引的查看

    show indexes from table_name;
    
    show index from table_name;
    
    show create table table_name;
    
    show keys from table_name;
    
    desc table_name;
  • 相关阅读:
    calcite 概念和架构
    在vscode中快速生成vue模板
    curl发送post请求
    【vue】chrome已安装Vue Devtools在控制台却无显示
    java(第一天)
    小游戏之莫交叉
    再谈成麻结账程序2.0
    成麻结账程序
    倍福Twincat2 常用快捷键及部分注意事项
    IP地址,子网掩码、默认网关,DNS服务器之间的联系与区别
  • 原文地址:https://www.cnblogs.com/chenjiacheng/p/6522549.html
Copyright © 2020-2023  润新知