zoukankan      html  css  js  c++  java
  • Mysql 索引类型

    索引类型

    1.普通索引
     create index index_name on t_user(name(12));
    2.唯一索引:允许表中存在多条记录为空的记录
    create unique index index_name on t_user(name(12));
    3.主键索引:不允许有空值
    create table t_user(id int not null,name varchar(12),primary key(id));
    4.组合索引
    alter table t_user add index name_city_age(name(6),city,age);

    5.Hash索引

    CREATE TABLE testhash (fname VARCHAR(50) NOT NULL,lname VARCHAR(50) NOT NULL,KEY USING HASH(fname))ENGINE=MEMORY;

    6.B-Tree索引:
    CREATE TABLE People (last_name varchar(50) not null,first_name varchar(50) not null,dob date not null,gender enum('m', 'f') not null,key(last_name, first_name, dob));


    7.聚簇索引(Clustered Indexes):聚簇索引保证关键字的值相近的元组存储的物理位置也相同(所以字符串类型不宜建立聚簇索引,特别是随机字符串,会使得系统进行大量的移动操作),且一个表只能有一个聚簇索引。因为由存储引擎实现索引,所以,并不是所有的引擎都支持聚簇索引。目前,只有solidDB和InnoDB支持。

    8.全文索引

    ALTER  TABLE  index15  ADD  FULLTEXT  INDEX  index15_info ( info ) ;

    用不上索引的情况
    1.!= 和<>不等查询时,不会用索引
    2.对字段使用函数时,不会用索引
    3.join时条件字段类型不一致时无法使用索引
    4. or 查询时,前后字段度必须有索引时才能用上索引

    干预索引使用,提高性能:
    1.提供给Mysql参考,推荐Mysql使用某个索引

    select * from t_user use index(index_city)where name like 'a%' and city like 'b%';
    2.强制Mysql使用某索引

    select * from t_user force index(index_city)where name like 'a%' and city like 'b%';
    3.让mysql 忽略使用某索引

    select * from t_user ignore index(index_city)where name like 'a%' and city like 'b%';

  • 相关阅读:
    (转)Delphi写COM+的心得体会
    delphi透明组件(控件)开发
    Delphi 常用组件常见属性说明
    DELPHI方面输入EDIT
    BYTE 转字符串
    椭圆按纽制作
    数据库实例学生名册管理系统(DAO的使用实验)
    数据库如何快速创建连接字符串
    数据库使用DataReader的简单实例(两种办法)
    数据库ADO.NET的结构
  • 原文地址:https://www.cnblogs.com/datastack/p/3826624.html
Copyright © 2011-2022 走看看