zoukankan      html  css  js  c++  java
  • MySQL创建索引

    一、索引类型

    • 普通索引
    • 唯一索引
    • 主键索引
    • 组合索引
    • 全文索引

    查询索引:show index from emp;

    二、普通索引

    是最基本的索引,它没有任何限制。
    在创建索引时,可以指定索引长度。length 为可选参数,表示索引的长度,只有字符串类型的字段才
    能指定索引长度,如果是BLOB和TEXT类型,必须指定length。
    创建索引时需要注意:如果指定单列索引长度,length 必须小于这个字段所允许的最大字符个数。

    create table emp1(id int,name varchar(30),salary float(8,2),address varchar(50),index emp1_id_index(id(20)));创建表添加索引
    
    create index emp_name_index on emp(last_name);创建索引
    
    alter table emp add index emp_salary_index(salary);添加索引
    
    drop index emp_name_index on emp;删除索引
    
    alter table emp drop index emp_index_i_n;删除索引

    三、唯一索引

    唯一索引与普通索引类似,不同的就是索引列的值必须唯一,但允许有空值。

    create table emp1(id int,name varchar(30),salary float(8,2),addrees varchar(50),unique emp1_name_index(name));创建表时添加索引
    
    create unique index emp_name_index on emp(last_name);创建索引
    
    alter table emp add unique emp_name_index(last_name); 添加索引

    四、主键索引

    主键索引是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值。一般是在建
    表的时候同时创建主键索引。当存在主键约束时,系统自动添加主键索引。

    alter table emp add primery key(id);创建主键约束即创建主键索引
    
    alter table emp drop primary key; 删除索引

    五、组合索引

    组合索引是指使用多个字段创建的索引,只有在查询条件中使用了创建索引时的第-一个
    字段,索引才会被使用(最左前缀原则)。

    就是最左优先。
    如:我们使用表中的name,address, salary 创建组合索引,那么想要组合索引生效,
    我们只能使用如下组合:
    name/ address/ salary
    name/ address
    name/
    如果使用addrees/salarv 或者是salarv 则索引不会牛效。

    create table emp1(id int,name varchar(30),salary float(8,2),addrees varchar(50),index emp_index_i_n(id,name));创建表时添加索引
    
    create index emp_index_n_s on emp(last_name,salary);创建索引
    
    alter table emp add index emp_index_i_n(emp_id,last_name); 添加索引
    
    alter table emp drop foreign key dept_id_fk; 删除约束
    alter table emp drop index dept_id_fk; 删除索引

    六、全文索引

    全文索引(FULLTEXT INDEX)主要用来查找文本中的关键字,而不是直接与索引中的值
    相比较。FULLTEXT索引跟其它索引大不相同,它更像是一个搜索引擎,而不是简单的where
    语句的参数匹配。FULLTEXT 索引配合match against操作使用,而不是一-般的where语句
    加like.
    全文索引可以从CHAR、VARCHAR或TEXT列中作为CREATE TABLE语句的- -部分
    被创建,或是随后使用ALTER TABLE添加。不过切记对于大容量的数据表,生成全文索
    引是一个非常消耗时间非常消耗硬盘空间的做法。

    create table emp1(id text,fulltext emp1_id_fulltext(id));创建表时添加索引
    
    create fulltext index emp_news_fullindex on emp(news);创建索引
    
    alter table emp add (news text,fulltext emp_news_fullindex(news)); 添加索引
    
    alter table emp drop index emp_news_fullindex; 删除索引
    drop index emp_news_fullindex on emp; 删除索引
    
    select * from emp8 where match(contr) against('hello');使用
    
    alter table emp8 add fulltext index emp8_contr_fulltext1(contr) with parser ngram;使用NGRAM分词
    
  • 相关阅读:
    【Elasticsearch学习】DSL搜索大全
    【Elasticsearch学习】文档搜索全过程
    【Elasticsearch学习】之基础概念
    【Elasticsearch学习】之一图读懂文档索引全过程
    echarts自定义tooltip显示
    最小生成树之克鲁斯卡尔算法
    最小生成树之prime算法
    spring security learning(spring in action)
    Radix_Sort
    Python一键获取日漫Top100榜单电影信息
  • 原文地址:https://www.cnblogs.com/baisha/p/15440918.html
Copyright © 2011-2022 走看看