zoukankan      html  css  js  c++  java
  • mysql索引(四)

      mysql 索引的建立可以大大的提高,mysql 的检索速度; 

      索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它包含着对数据表里所有记录的引用指针。在sql语句中,在没有索引的情况下,数据库会便利全部数据后选择符合条件的,而有了响应的索引之后,数据库会直接在索引中查找符合条件的选项;
      索引分为聚簇索引和费局促索引两种,聚簇索引是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样;聚簇索引能提高多行检索的速度,而非聚簇索引对于单行的检索很快;
    mysql索引分为:普通索引、唯一索引、全文索引、单列索引,多列索引、组合索引;

      虽然索引可以大大的提交 mysql 的检索速度,但是也会降低更新表的速度;

      一、普通索引

        普通索引是mysql中最基本的索引了,它没有任何的限制;

        1)、创建索引

          create index index_name on tablename(column_name(length))

          或者在创建表的时候就创建索引    create table table_name(id int,title varchar(10),primary key ('id'),index index_name(title(8)))

          再或者  alter table table_name add index index_name on (column_name(length))

        2)、删除索引

          drop index index_name on table_name

          或者 alter table table_name drop index index_name

      二、唯一索引

        唯一索引与普通索引类似,但是不同的是:唯一索引的索引列的值必须是唯一的,但是允许有空值,而且他与主键也是不同的;如果是组合索引,那么列值的组合必须是唯一的;

        1)、创建唯一索引

          create unique index index_name on table_name(column_name(length))

          或者 alter table table_name add unique index index_name on (column_name(length))

          再或者在创建表的时候直接创建索引 create table table_name(id int,title varchar(10),unique index_name(title(length)))

      三、全文索引

        mysql 从3.23.23版本开始支持全文索引和全文检索了,fulltext即全文,fulltext索引仅仅可用于myISAM 表;他们可以从 char 以及 varchar 或 text 列中最为 create table 语句的一部分被创建,或是随后使用 alter table 或 create index 被添加;传经方法和唯一索引是一样的,唯一所以是在 indx 前边用 unique 进行标记的,而全文索引是在 index 前边用 fulltext 进行标记;

      四、单列索引

      五、组合索引

        创建的方法和其他的是一样的,只不过是指定了多个column_name,例如: 

        create index index_name on table_name(name(8),age(3))

  • 相关阅读:
    应用程序域的用法
    WCF 暴露元数据的配置
    无svc文件发布WCF服务到IIS上
    C#输出毫秒
    [一点一滴学英语]20051017
    从其他平台转向Windows,MS提供了很多便利;那反过来呢?
    Ward Cunningham加入Eclipse?
    [导入][链接]Linux常用命令/快捷键
    [导入][号外]Oracle to buy JBoss, Zend and Sleepycat?
    [导入][链接]Google开始向Linux移植其Windows应用程序?
  • 原文地址:https://www.cnblogs.com/mufc/p/10577176.html
Copyright © 2011-2022 走看看