精华内容
下载资源
问答
  • 目录 为表格创建索引 ...创建唯一索引的字段值不能有相同的数据,否则保存不成功;主键id默认就是唯一索引 创建组合索引 选择自己需要的字段 创建全文索引 MySQL>6默认使用innodb,要把存.

    目录

     

    为表格创建索引

    以下是创建简单的普通单列索引

    以下是创建唯一索引

    创建组合索引

    创建全文索引

    创建控件索引

    删除索引


    为表格创建索引

    选择表格,右键、设计

    点击索引,输入索引名,选择要添加索引的字段,索引类型、索引数据结构

    以下是创建简单的普通单列索引

    以下是创建唯一索引

    创建唯一索引的字段值不能有相同的数据,否则保存不成功;主键id默认就是唯一索引

    创建组合索引

    选择自己需要的字段

    创建全文索引

    MySQL>6默认使用innodb,要把存储引擎改为MYISAM,才能刚创建全文索引,并且全文索引适合在大量数据、比较长的字符串上创建

    第一步:修改表格默认存储引擎为MyISAM

    ALTER table exam ENGINE = MyISAM;

    第二步:创建全文索引

    创建控件索引

    控件索引必须在MyISAM类型表中创建,且字段必须是非空

    第一步:修改引擎为MyISAM

    第二步:字段类型为GEOMETRY

    第三步:创建索引(这里我通过sql跑的)

    alter table exam ADD SPATIAL INDEX spatidx(dd);

    通过navacat查看索引类型是normal

    删除索引

    选中需要删除的索引,点击删除

     

     

    展开全文
  • MySQL——创建数据表时创建索引

    万次阅读 2018-05-15 18:53:58
     建立数据表时创建索引 创建数据表时创建索引的基本语法结构: CREATE TABLE table_name( 属性名 数据类型[约束条件], …… 属性名 数据类型 [UNIQUE | FULLTEXT | SPATIAL ] INDEX | KEY ...

         在创建数据表时创建索引的基本语法结构:

        CREATE  TABLE  table_name(
        属性名  数据类型[约束条件],
        ……
        属性名  数据类型
        [UNIQUE  |  FULLTEXT   |   SPATIAL  ]   INDEX  |  KEY
        [  别名 ]  (  属性名1   [(  长度  )]   [  ASC  |  DESC  )
        );

        属性值的含义如下:

    a.  UNIQUE: 可选参数,表示索引为唯一索引。
    b.  FULLTEXT:  可选参数,表示索引为全文索引。
    c.  SPATIAL:  可选参数,表示索引为空间索引。
    d.  INDEX  和 KEY 参数用于指定字段为索引的,用户在选择时,只需要选择其中的一种即可。
    e.  "别名" : 为可选参数,其作用是给创建的索引取新名称。
    d.   属性名1:  指索引对应的字段名称,该字段必须被预先定义。
    f.   长度:  可选参数,其指索引的长度,必须是字符串类型才可以使用。
    g.  ASC/DESC: 可选参数,ASC 表示升序排列,DESC 表示降序排列。


    1.  普通索引创建

        创建普通索引,即不添加  UNIQUE、FULLTEXT 等任何参数。

        【例】创建表名为 score 的数据表,并在该表的 id 字段上建立索引,SQL 语句如下:

    mysql> CREATE table score(
        -> id  int(11)  AUTO_INCREMENT  primary  key  not  null,
        -> name  varchar(50)  not null,
        -> math  int(5)  not null,
        -> English  int (5)  not null,
        -> Chinese  int (5) not  null,
        -> index(id)
        -> );

    2.  创建唯一索引

        创建唯一索引时,使用  UNIQUE  参数进行约束。

        【例】创建表名为 address  的数据表,并在该表的 id 字段上建立唯一索引,SQL 语句如下:

    mysql> CREATE  table address(
        -> id  int(11)  auto_increment  primary  key  not  null,
        -> name  varchar(50),
        -> address  varchar(200),
        -> UNIQUE  INDEX  address(id  ASC)
        -> );

    3.  创建全文索引

        全文索引只能作用在  CHAR、VARCHAR、TEXT、类型的字段上。创建全文索引需要使用  FULLTEXT  参数进行约束

        【例】创建表名为 cards  的数据表,并在该表的 name 字段上建立全文索引,SQL 语句如下:

    mysql> create  table cards(
        -> id int(11)  auto_increment  primary key  not  null,
        -> name  varchar(50),
        -> number  bigint(11),
        -> info  varchar(50),
        -> FULLTEXT  KEY  cards_number(name)
        -> );

    4.  创建单列索引

        创建单列索引,即在数据表的单个字段上创建索引。创建该类型索引不需要引入约束参数,用户在建立时只需要指定单列字段名,即可创建单列索引。

        【例】创建名称为  telephone  的数据表,并指定在  tel  字段上建立名称为  tel_num  的单列索引,SQL  语句如下:

    mysql> create  table  telephone(
        -> id  int(11)  primary key auto_increment  not  null,
        -> name  varchar(50)  not  null,
        -> tel  varchar(50)  not null,
        -> index  tel_num(tel(20))
        -> );

    5.  创建多列索引

        创建多列索引即指定表的多个字段即可实现。

        【例】创建名称为  information  的数据表,并指定  name  和  sex  为  多列索引,SQL  语句如下:

    mysql> create table  information(
        -> inf_id  int(11)  auto_increment  primary  key  not  null,
        -> name  varchar(50)  not  null,
        -> sex  varchar(5)  not null,
        -> birthday  varchar(50)  not  null,
        -> index  info(name,sex)
        -> );
        需要注意的是,在多列索引中,只有查询条件中使用了这些字段中的第一个字段(即上面示例中的  name 字段),索引才会被使用。
        触发多列索引的条件是用户必须使用索引的第一字段,如果没有用到第一字段,则索引不起任何作用,用户想要优化查询速度,可以应用该类索引形式。


    6.  创建空间索引

        创建空间索引时,需要设置  SPATIAL 参数。同样,必须说明的是,只有  MyISAM 类型表支持该类型索引。而且,索引字段必须有非空约束。

        【例】创建一个名称为 list 的数据表,并创建一个名为  listinfo 的空间索引,SQL语句如下:

    mysql> create  table  list(
        -> id  int(11)  primary  key  auto_increment  not null,
        -> goods  geometry  not  null,
        -> SPATIAL  INDEX  listinfo(goods)
        -> )engine=MyISAM;
        goods  字段上已经建立名称为  listinfo 的空间索引,其中  goods  字段必须不能为空,且数据类型是  GEOMETRY,该类型是空间数据类型。空间类型不能用其他类型代替,否则在生成空间素引时会产生错误且不能正常创建该类型索引。


        空间类型除了上述示例中提到的 GEOMETRY 类型外,还包括如  POINT、LINESTRING、POLYGON  等类型,这些空间教据类型在平常的操作中很少被用到。



    【注】参考于清华大学出版社《MySQL数据库应用案例课堂》2016年1月第1版

    展开全文
  • 另一种是使用ALTER TABLE 语句已存在的上创建索引,或者使用CREATE_INDEX 已存在的上创建索引。 1. 创建时创建【普通】索引 语法格式为: CREATE TABLE Y1 ( COLUMN_NAME DATA_TYPE SCHEME, ...

    MySQL提供了多种在单列或多列上创建索引的方法:一种是在创建表时指定索引列;另一种是使用ALTER TABLE 语句在已存在的表上创建索引,或者使用CREATE INDEX 在已存在的表上创建索引。

    1. 在 创建表时创建【普通】索引

    语法格式为:

    CREATE TABLE Y1 (
     COLUMN_NAME  DATA_TYPE  SCHEME,
      [UNIQUE | FULLTEXT | SPATIAL]  [INDEX | KEY ]  INDEX_NAME([LENGTH],.....)   [ASC | DESC]
    )
    

    UNIQUE | FULLTEXT | SPATIAL 这三个是可选项,UNIQUE 为唯一索引,FULLTEXT 为全文索引,SPATIAL 为空间索引,其中FULLTEXT 和SPATIAL InnoDB 存储引擎不支持,MyISAM存储引擎支持;INDEX 和 KEY 为同义词,创建索引时使用它们中任何一个都可以,INDEX_NAME 为索引名称,可选参数,如果不指定,缺省(默认值)为COLUMN_NAME ,LENGTH 为可选参数,可以指定索引的长度,需注意的是,只有字符串类型的列才能指定索引长度,ASC 或 DESC 指定升序或者降序的索引值存储。

    使用INDEX 创建 SQL:

    ```sql
    CREATE TABLE Y1 (
     ID INT (10) AUTO_INCREMENT NOT NULL,
     NAME VARCHAR (20) NOT NULL,
     SEX INT (1) NOT NULL DEFAULT 0,
     INDEX IDX (ID)
    )
    --创建普通索引
    
    CREATE TABLE T4 (
     ID INT NOT NULL,
     NAME CHAR(30) NOT NULL,
     AGE INT NOT NULL,
     INFO VARCHAR(255),
     FULLTEXT INDEX FULLTEXTIDX(INFO)
    ) ENGINE=MyISAM
    -- FullText 全文索引,需指定存储引擎为MyISAM,MySQL默认存储引擎为InnoDB
    
    CREATE TABLE T5 (
     G GEOMETRY NOT NULL,
     SPATIAL INDEX SPATINDEX (G)
    ) ENGINE = MYISAM
    -- SPATIAL 创建空间索引,需指定存储引擎为MyISAM,MySQL默认存储引擎为InnoDB
    
    -- 创建唯一索引
    CREATE TABLE Y3(
     ID INT NOT NULL,
     NAME CHAR(20),
     UNIQUE INDEX UNIQUEIDX(ID)
    )ENGINE = INNODB
    
    -- 创建组合索引
    CREATE TABLE Y4(
     ID INT NOT NULL,
     NAME CHAR(20),
     AGE INT NOT NULL,
     INDEX MULTIIDX(ID,NAME(19),AGE)
    ) ENGINE= INNODB
    

    使用KEY创建索引 SQL

    CREATE TABLE Y2 (
     ID INT NOT NULL,
     NAME VARCHAR (233) NOT NULL,
     KEY IDX (ID)
    ) ENGINE = INNODB DEFAULT CHARSET = UTF8
    --用KEY创建普通索引 
    

    **

    2. 在已存在表中添加索引

    **
    基本语法分两种,第一种语法为

    2.1:

    ALTER TABLE TABLE_NAME ADD  [UNIQUE | FULLTEXT | SPATIAL]  [INDEX | KEY ]  INDEX_NAME(COLUMN_NAME(LENGTH),.....)  [ASC | DESC]
    

    SQL:

    ALTER TABLE t1 ADD UNIQUE INDEX ALTERIDX(NAME)
    -- 使用ALTER TABLE 语句创建索引
    

    2.2:
    第二种语法为:

    CREATE [UNIQUE | FULLTEXT | SPATIAL]  [INDEX | KEY ]  INDEX_NAME ON TABLE_NAME(COLUMN_NAME(LENGTH),.....)  [ASC | DESC]
    

    SQL :

    CREATE UNIQUE INDEX CREIDX ON t4(NAME(20)) 
    -- 使用CREATE INDEX 在已存在表中创建索引
    
    展开全文
  • 表中索引时如何删除数据

    千次阅读 2018-03-22 11:45:24
    今天使用mysql时,创建了一个,没有主键,对某些列建了索引,插入数据后想删除其中的数据,发现使用平常的delete * from table_name报错,后来直接使用truncate table_name直接删除了表中所有数据,但是使用...
    今天使用mysql时,创建了一个表,没有主键,对某些列建了索引,插入数据后想删除其中的数据,发现使用平常的delete * from table_name报错,后来直接使用truncate table_name直接删除了表中所有数据,但是使用truncate无法删除某一条数据。
    展开全文
  • 关于InnoDB表数据索引数据的存储

    千次阅读 2018-12-21 22:00:51
    关于InnoDB表数据索引数据的存储的一些误解,这里是澄清的过程
  • 环境 数据库:TiDB数据库(和mysql数据库极其相似的数据库) ... 表索引:包含一个普通索引索引列 ”year“ 测试sql: SQL1 : select brand from index_basedata where year = ...
  • oracle分区仲本地索引和全局索引的适用场景 ...既然存在就会有存在的原因,也就是特定的场景就更能发挥出索引的性能的; 本文档通过测试,总结出两种索引的适合的场景; 测试环境 数据库版本:1...
  • 您可以在表中创建索引,以便更加快速高效地查询数据。 用户无法看到索引,它们只能被用来加速搜索/查询。 注释:更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是由于索引本身也需要更新。因此,...
  • 千万级别数据表创建索引

    万次阅读 2017-09-25 12:52:10
    业务背景最近一个开发维护的公众号管理系统用户(user_info)数据已经达到15,000k了,而此时有一个业务场景需要将公众号的用户信息重新同步一次,且后台原有过针对单个公众号的用户同步,但是已经非常难以使用,...
  • 什么情况下应该建立索引 ...ORACLE利用索引来保证数据的完整性 如lc_hj(流程环节)的lc_bh+hj_sx(流程编号+环节顺序) 直接条件查询的字段 SQL用于条件约束的字段 如zl_yhjbqk(用户基本情况)的qc
  • 数据库的逻辑存储结构(空间等)决定了数据库的物理空间是如何被使用的,数据库对象如索引等分布各个空间。  Oracle 数据库的物理结构从操作系统一级查看,是由一个个的文件组成,从物理上可划分为:数据...
  • 答:看A、B两字段做组合索引的时候,谁前面,谁后面,如果A前,那么单独使用A会有索引效果,单独使用B则没有,反之亦然。同理,使用like模糊查询时,如果只是使用前面%,那么有索引效果,如果使用双%号匹配,...
  • sql 千万级数据表新建索引

    千次阅读 2017-03-15 15:20:27
    针对千万级的数据表,查询数据总是很慢,往往需要通过新建索引来提升性能,但是由于数据量过大,界面上手动添加索引总是会超时,导致失败。解决方案:如下通过sql语句的方式执行新建索引便可以成功,3000+万行的数据...
  • 数据库命令行查询 select * from information_schema.processlist where command not in ('Sleep') and user not in ('mydba','event_scheduler','repl','binlogbak','system user')找到你当时执行的语句的进程...
  • 2、查询数据表索引 mysql> SHOW INDEX FROM tbl_name; 3、创建索引(PRIMARY KEY,INDEX,UNIQUE)支持创建主键索引,联合索引和普通索引命令 mysql>ALTER TABLE tbl_name ADD INDEX index_nam
  • 这篇博客是补充上一篇的 ...select round(sum(data_length+index_length)/1024/1024) as total_mb,– 数据索引占用的空间大小 round(sum(data_length)/1024/1024) as data_mb,– 数据占用的空间大小
  • 最近遇到的一个问题,需要一张1800万数据量的表中添加加一个字段并添加索引,但是直接添加会导致mysql崩溃或者锁时间太长影响用户操作,所以需要利用其他的方法进行添加,这篇文章主要给大家介绍了MySQL中大数据...
  • mysql查看表中索引

    千次阅读 2018-12-27 17:37:45
    MySQL,你可以使用一下语法查看表中索引状态 1 show index from 表名;  删除索引:DROP INDEX Stuno ON STUDENT;   其中Stuno 为索引名,STUDENT为表名;删除STUDENT表中...
  • 最近工作遇到这样的事情,从 A(几万条)、B(几百万条)数据表中进行交叉查询,因为建立的索引不当,大大影响了查询的速度,此根据自已遇到的情况总结出一些经验,此与大家分享:1、遇到这种数据量较...
  • mysql关联索引使用情况

    万次阅读 2015-12-22 17:47:01
    mysql某些情况下可以自动优化关联的关联条件,如:通过分析条件的字段是否有索引,关联表中数据总数之类,通过这些条件mysql便可以实现一些自动优化sql语句的功能。 以下几种情况基本是靠一些简单实验进行...
  • Oracle中索引使用

    万次阅读 2016-04-22 23:44:53
    一旦建立了索引用户表中建立、更改和删除数据库时, Oracle就自动地维护索引。创建索引时,下列准则将帮助用户做出决定:  1) 索引应该SQL语句的"where"或"and"部分涉及的列(也称谓词
  • Python数据索引分类

    万次阅读 2021-02-03 13:04:51
    目录 前置知识补充: ...布尔索引:指的是通过传入一个判断条件来选择数据的方式,称之为布尔索引; 普通索引:通过选择行/列名来选择数据的方式,称为普通索引; 位置索引:通过传入具体的位置来选择数..
  • 原文地址 如果一个索引包含(或覆盖)所有需要查询的字段的值,称为‘覆盖索引’。即只需扫描索引而无须回。 只扫描索引而无需回的优点: ...3.一些存储引擎如myisam内存只缓存索引数据则依赖于操作系统来...
  • MySQL索引的创建与使用

    万次阅读 多人点赞 2018-08-06 18:49:59
    声明:本人主要简单示例MySQL的单列索引、组合索引的创建与使用索引的创建: 建表时创建: CREATE TABLE 表名( 字段名 数据类型 [完整性约束条件], ……, [UNIQUE | FULLTEXT | SPATIAL] INDEX | KEY ...
  • 首先JAVA程序向数据库进行数据的插入 ,因为要利用索引 ,少量的数据是不能够测试出索引的效果,所以要插入大量的数据进行测试,这次我们插入50万条记录 JAVA程序如下:建立一个classfor,向其中录入50万条...
  • SQL 在表中建立索引的作用

    千次阅读 2011-05-02 21:34:00
    转贴:... 为stu的age字段建立了索引,那么查询时,select * from stu where age > 10; 这个时候效率就高,主要体现where语句,where age > 10 ,将age 作为查询的条件
  • 解决Hbase数据更新Phoenix对应索引表不更新问题

    千次阅读 热门讨论 2018-03-15 23:21:06
    用户访问的数据接口直接走Phoenix,Phoenix的是映射hbase产生,Phoenix的会建很多索引,这时候问题就出现了,正常通过接口直接写数据进Phoenix,相应的索引表也是会更新的,但是直接写数据到底层hbase,这...
  • Oracle中索引使用

    千次阅读 2016-12-02 17:20:21
    索引信息与独立存放。 Oracle数据库自动使用和维护索引索引分类 唯一性索引 非唯一索引 创建索引的两种方式 自动创建,在在定义主键或唯一键约束时系统会自动相应的字段上创建唯一性索引。 手动创建,用户...
  • 转自:...所以数据量的情况下建立索引,而此时会对该进行DML操作时需要在建索引语句后加上online参数。同时建立索引时可以用并发,记得建完之后要关掉并发否则会影响oracle性能。...
  • 经测试,oracle数据库是不支持对同一数据列建立两个单列索引 例: table的column列上建立索引索引1:create index inx_table_column on table(column); 创建索引成功 索引2:create index inx_table...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,580,956
精华内容 632,382
关键字:

在数据表中使用索引