精华内容
下载资源
问答
  • 如何在navicate for mysql中创建索引

    千次阅读 2019-05-16 11:10:26
    首先:创建自己需要的表 然后:点击索引按钮 其次:名:根据自己的需要填写 栏位:是需要索引的字段 索引类型:唯一索引 索引方式: btree 可以用于 > < =查询 hash 不能做order by排序 不能做 用like模糊...

    首先:创建自己需要的表

    在这里插入图片描述

    然后:点击索引按钮

    在这里插入图片描述

    其次:名:根据自己的需要填写
    栏位:是需要索引的字段
    索引类型:唯一索引
    索引方式: btree 可以用于 > < =查询
    hash 不能做order by排序 不能做 用like模糊查询

    在这里插入图片描述

    如果您觉得对您有帮助,请给小编点个赞吧!!!

    展开全文
  • MySQL中创建索引

    千次阅读 2006-08-29 22:36:00
    显示和删除索引show index from structs;drop index e_count_2 on structs;创建索引-1CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [USING index_type] ON tbl_name (index_col_name,...) index_col_name:

    显示和删除索引

    show index from structs;

    drop index e_count_2 on structs;

    创建索引-1

    CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
        [USING index_type]
        ON tbl_name (index_col_name,...)
    index_col_name:
        col_name [(length)] [ASC | DESC]

    create index I_e_count on structs(e_count ASC);

     对于CHAR和VARCHAR列,只用一列的一部分就可创建索引。创建索引时,使用col_name(length)语法,对前缀编制索引。前缀包括每列值的前length个字符。BLOB和TEXT列也可以编制索引,但是必须给出前缀长度。前缀最长为255字节。对于MyISAM和InnoDB表,前缀最长为1000字节。注意前缀的限长以字节计,而CREATE INDEX语句中的前缀长度指的是字符的数目。对于使用多字节字符集的列,在指定列的前缀长度时,要考虑这一点。
     只有当您正在使用MyISAM, InnoDB或BDB表类型时,您可以向有NULL值的列中添加索引.
    只有当您正在使用MyISAM, BDB或InnoDB表类型时,您可以向BLOB或TEXT列中添加索引。

    部分储存引擎允许在创建索引时指定索引类型。index_type指定语句的语法是USING type_name。不同的储存引擎所支持的type_name值已显示在下表中。如果列有多个索引类型,当没有指定index_type时,第一个类型是默认值。

    存储引擎

    允许的索引类型

    MyISAM

    BTREE

    InnoDB

    BTREE

    MEMORY/HEAP

    HASH, BTREE

    示例:


    处展示的语句用于创建一个索引,索引使用列名称的前10个字符。
    CREATE INDEX part_of_name ON customer (name(10));
    CREATE TABLE lookup (id INT) ENGINE = MEMORY;
    CREATE INDEX id_index USING BTREE ON lookup (id);
    TYPE type_name可以作为USING type_name的同义词,用于指定索引类型。但是,USING是首选的格式。另外,在索引规约语法中,位于索引类型前面的索引名称不能使用TYPE。这是因为,与USING不同,TYPE不是保留词,因此会被认为是一个索引名称

    创建索引-2

    ALTER [IGNORE] TABLE tbl_name ADD INDEX [index_name] [index_type] (index_col_name,...)
    alter table structs add index e_count_1 (e_count DESC);


     

    展开全文
  • mysql 添加索引 mysql 如何创建索引

    千次阅读 2019-01-30 11:48:22
    mysql 添加索引 mysql 如何创建索引 1.添加PRIMARY KEY(主键索引)  mysql&gt;ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )  2.添加UNIQUE(唯一索引)  mysql&gt;ALTER TABLE `table_name` ...

    mysql 添加索引 mysql 如何创建索引

    1.添加PRIMARY KEY(主键索引) 
    mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 
    2.添加UNIQUE(唯一索引) 
    mysql>ALTER TABLE `table_name` ADD UNIQUE ( 
    `column` 

    3.添加INDEX(普通索引) 
    mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` ) 
    4.添加FULLTEXT(全文索引) 
    mysql>ALTER TABLE `table_name` ADD FULLTEXT ( `column`) 
    5.添加多列索引 
    mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )

    下面是更加详细的方法

    MySQL中可以使用alter table这个SQL语句来为表中的字段添加索引。

    使用alter table语句来为表中的字段添加索引的基本语法是:
    ALTER TABLE <表名> ADD INDEX (<字段>);

    我们来尝试为test中t_name字段添加一个索引。

    mysql> alter table test add index(t_name);
    Query OK, 0 rows affected (0.17 sec)
    Records: 0  Duplicates: 0  Warnings: 0

    执行成功后,我们来看看结果。

    mysql> describe test;
    +------------+-------------+------+-----+---------+-------+
    | Field      | Type        | Null | Key | Default | Extra |
    +------------+-------------+------+-----+---------+-------+
    | t_id       | int(11)     | YES  |     | NULL    |       |
    | t_name     | varchar(50) | NO   | MUL | NULL    |       |
    | t_password | char(32)    | YES  |     | NULL    |       |
    | t_birth    | date        | YES  |     | NULL    |       |
    +------------+-------------+------+-----+---------+-------+
    4 rows in set (0.00 sec)

    结果可以看出,t_name字段的Key这一栏由原来的空白变成了MUL。这个MUL是什么意思呢?简单解释一下:如果Key是MUL,那么该列的值可以重复,该列是一个非唯一索引的前导列(第一列)或者是一个唯一性索引的组成部分但是可以含有空值NULL。

    展开全文
  • mysql创建索引

    千次阅读 2015-09-25 14:46:27
    CREATE INDEX 语句用于在表中创建索引。 在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据。您可以在表中创建索引,以便更加快速高效地查询数据。 用户无法看到索引,它们只能被用来加速搜索/查询...

    alter table message_text add index(from_id);
    alter table message_text add index(to_id);

    CREATE INDEX 语句用于在表中创建索引。
    在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据。

    您可以在表中创建索引,以便更加快速高效地查询数据。
    用户无法看到索引,它们只能被用来加速搜索/查询。
    注释:更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。

    SQL CREATE INDEX 语法
    在表上创建一个简单的索引。允许使用重复的值:
    CREATE INDEX index_name
    ON table_name (column_name)
    注释:”column_name” 规定需要索引的列。
    CREATE INDEX 实例
    本例会创建一个简单的索引,名为 “PersonIndex”,在 Person 表的 LastName 列:
    CREATE INDEX PersonIndex
    ON Person (LastName)

    SQL CREATE UNIQUE INDEX 语法
    在表上创建一个唯一的索引。唯一的索引意味着两个行不能拥有相同的索引值。
    CREATE UNIQUE INDEX index_name
    ON table_name (column_name)

    如果您希望以降序索引某个列中的值,您可以在列名称之后添加保留字 DESC:
    CREATE INDEX PersonIndex
    ON Person (LastName DESC)

    假如您希望索引不止一个列,您可以在括号中列出这些列的名称,用逗号隔开:
    CREATE INDEX PersonIndex
    ON Person (LastName, FirstName)

    假如我们创建了一个 testIndex 表:
      CREATE TABLE testIndex(i_testID INT NOT NULL,vc_NameVARCHAR(16) NOT NULL);
      我们随机向里面插入了 1000 条记录,其中有一条i_testID vc_Name 555 erquan
      在查找 vc_Name=”erquan” 的记录 SELECT * FROM testIndex WHERE vc_Name=’erquan’; 时,如果在vc_Name 上已经建立了索引,MySql 无须任何扫描,即准确可找到该记录!相反,MySql 会扫描所有记录,即要查询 1000。以索引将查询速度提高 100 倍。
      一、索引分单列索引和组合索引
      单列索引:即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引:即一个索包含多个列。
      二、介绍一下索引的类型
      1、普通索引。
      这是最基本的索引,它没有任何限制。它有以下几种创建方式:
      (1)创建索引:CREATE INDEX indexNameON tableName(tableColumns(length));如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是 BLOB 和 TEXT 类型,必须指定 length,下同。
      (2)修改表结构:ALTER tableName ADDINDEX [indexName] ON (tableColumns(length))
      (3)创建表的时候直接指定:CREATE TABLEtableName ( […], INDEX [indexName] (tableColumns(length)) ;
      2、唯一索引。
      它与前面的”普通索引”类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式:
      (1)创建索引:CREATE UNIQUE INDEXindexName ON tableName(tableColumns(length))
      (2)修改表结构:ALTER tableName ADDUNIQUE [indexName] ON (tableColumns(length))
      (3)创建表的时候直接指定:CREATE TABLEtableName ( […], UNIQUE [indexName] (tableColumns(length));
      3、主键索引
      它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引:CREATE TABLEtestIndex(i_testID INT NOT NULL AUTO_INCREMENT,vc_Name VARCHAR(16) NOTNULL,PRIMARY KEY(i_testID));当然也可以用 ALTER 命令。记住:一个表只能有一个主键。
      4、全文索引
      MySQL 从 3.23.23 版开始支持全文索引和全文检索。
      删除索引的语法:DROP INDEX index_name ON tableName
      三、单列索引和组合索引
      为了形象地对比两者,再建一个表:
      CREATE TABLE myIndex ( i_testID INT NOT NULLAUTO_INCREMENT, vc_Name VARCHAR(50) NOT NULL, vc_City VARCHAR(50) NOT NULL,i_Age INT NOT NULL, i_SchoolID INT NOT NULL, PRIMARY KEY (i_testID) );
      在这 10000 条记录里面 7 上 8 下地分布了 5 条vc_Name=”erquan” 的记录,只不过 city,age,school 的组合各不相同。
      来看这条 T-SQL:SELECT i_testID FROMmyIndex WHERE vc_Name=’erquan’ AND vc_City=’郑州’ ANDi_Age=25;
      首先考虑建单列索引:
      在 vc_Name 列上建立了索引。执行 T-SQL 时,MYSQL 很快将目标锁定在了 vc_Name=erquan 的 5 条记录上,取出来放到一中间结果集。在这个结果集里,先排除掉 vc_City 不等于”郑州”的记录,再排除 i_Age 不等于 25 的记录,最后筛选出唯一的符合条件的记录。
      虽然在 vc_Name 上建立了索引,查询时MYSQL不用扫描整张表,效率有所提高,但离我们的要求还有一定的距离。同样的,在 vc_City 和 i_Age 分别建立的单列索引的效率相似。
      为了进一步榨取 MySQL 的效率,就要考虑建立组合索引。就是将 vc_Name,vc_City,i_Age 建到一个索引里:
      ALTER TABLE myIndex ADD INDEX name_city_age(vc_Name(10),vc_City,i_Age);
      建表时,vc_Name 长度为 50,这里为什么用 10 呢?因为一般情况下名字的长度不会超过 10,这样会加速索引查询速度,还会减少索引文件的大小,提高 INSERT 的更新速度。
      执行 T-SQL 时,MySQL 无须扫描任何记录就到找到唯一的记录!!
      肯定有人要问了,如果分别在 vc_Name,vc_City,i_Age上建立单列索引,让该表有 3 个单列索引,查询时和上述的组合索引效率一样吗?大不一样,远远低于我们的组合索引。虽然此时有了三个索引,但 MySQL 只能用到其中的那个它认为似乎是最有效率的单列索引。
      建立这样的组合索引,其实是相当于分别建立了
      vc_Name,vc_City,i_Age
      vc_Name,vc_City
      vc_Name
      这样的三个组合索引!为什么没有 vc_City,i_Age 等这样的组合索引呢?这是因为 mysql 组合索引“最左前缀”的结果。简单的理解就是只从最左面的开始组合。并不是只要包含这三列的查询都会用到该组合索引,下面的几个 T-SQL 会用到:
      SELECT * FROM myIndex WHREE vc_Name=”erquan”AND vc_City=”郑州”
      SELECT * FROM myIndex WHREEvc_Name=”erquan”
      而下面几个则不会用到:
      SELECT * FROM myIndex WHREE i_Age=20 AND vc_City=”郑州”
      SELECT * FROM myIndex WHREE vc_City=”郑州”
      四、使用索引
      到此你应该会建立、使用索引了吧?但什么情况下需要建立索引呢?一般来说,在 WHERE和 JOIN 中出现的列需要建立索引,但也不完全如此,因为 MySQL 只对 <,<=,=,>,>=,BETWEEN,IN,以及某些时候的LIKE(后面有说明)才会使用索引。
      SELECT t.vc_Name FROM testIndex t LEFT JOIN myIndex mON t.vc_Name=m.vc_Name WHERE m.i_Age=20 AND m.vc_City=’郑州’ 时,有对 myIndex 表的vc_City 和 i_Age 建立索引的需要,由于testIndex表的 vc_Name 开出现在了 JOIN 子句中,也有对它建立索引的必要。
      刚才提到了,只有某些时候的 LIKE 才需建立索引?是的。因为在以通配符 % 和 _ 开头作查询时,MySQL 不会使用索引,如 SELECT * FROM myIndex WHERE vc_Name like’erquan%’
    会使用索引,而 SELECT * FROM myIndex WHEREt vc_Namelike’%erquan’ 就不会使用索引了。
      五、索引的不足之处
      上面说了那么多索引的好话,它真的有像传说中那么优秀么?当然会有缺点了。
      1、虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行 INSERT、UPDATE 和DELETE。因为更新表时,MySQL 不仅要保存数据,还要保存一下索引文件。
      2、建立索引会占用磁盘空间的索引文件。一般情况这个问题不太严重,但如果你在一个大表上创建了多种组合索引,索引文件的会膨胀很快。

      讲了这么多,无非是想利用索引提高数据库的执行效率。不过索引只是提高效率的一个因素。如果你的MySQL有大数据的表,就需要花时间研究建立最优秀的索引或优化查询语句。

    展开全文
  • 一、创建索引 1、添加PRIMARY KEY(主键索引) ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 2、添加UNIQUE(唯一索引) ALTER TABLE `table_name` ADD UNIQUE ( `column` ) 3、添加INDEX(普通索引) ...
  • MySQL 创建索引和索引效率验证

    千次阅读 2019-10-27 17:41:44
    MySQL 创建索引和索引效率验证 对于一张存储数据的表来说,通常来说数据量会很大。 项目总会有一些表数据量非常大,并且在使用过程,需要频繁地到这些表查询数据。 数据量大的时候,查询速度会明显变慢,这...
  • mysql 创建索引语句

    千次阅读 2020-11-19 19:00:03
    一、创建索引 1.PRIMARYKEY(主键索引) mysql > ALTERTABLE`table_name`ADDPRIMARYKEY (`column`) 2.UNIQUE(唯一索引) mysql > ALTERTABLE`table_name`ADDUNIQUE (`column` ) 3.INDEX(普通索引) mysql &...
  • mysql数据库创建索引和使用

    千次阅读 2018-11-08 13:43:46
    1. 2             ...,后续添加修改索引。...需要注意索引需要的不同数据库引擎 ...创建语句: CREATE TABLE zy_article( art_id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, typ...
  • Mysql创建索引注意事项

    千次阅读 2020-03-08 08:40:39
    介绍了mysql索引相关的基础知识及索引自身搜索的规则和锁机制,并列了一些创建索引的一些优化策略或小tips...
  • MySql 创建索引原则

    千次阅读 2015-12-27 15:41:12
    为了使索引的使用效率更高,在创建索引时,必须考虑在哪些字段上创建索引和创建什么类型的索引。本小节将向读者介绍一些索引的设计原则。   1.选择唯一性索引   唯一性索引的值是唯一的,可以更快速的通过该索...
  • 1、创建索引 索引的创建可以在CREATE TABLE语句进行,也可以单独用CREATE INDEX或ALTER TABLE来给表增加索引。 以下命令语句分别展示了如何创建主键索引(PRIMARY KEY)、 唯一索引(UNIQUE)、 全文索引...
  • mysql创建索引方式

    千次阅读 2019-06-29 19:11:48
    在执行CREATE TABLE语句时可以创建索引,也可以单独用CREATE INDEX或ALTER TABLE来为表增加索引。 1.ALTER TABLE ALTER TABLE用来创建普通索引、UNIQUE索引或PRIMARY KEY索引。 ALTER TABLE table_name ADD ...
  • MySQL有哪些索引,及如何创建索引

    千次阅读 2020-09-11 19:15:17
    MySQL索引有哪些,及如何创建索引? 1.了解索引 1、索引是什么?  在MySQL中,索引是一种增强式的存在,这表示即使没有索引,MySQL的功能并不会受到影响。索引是对数据库表一列或多列的值进行排序的一种结构(B树)...
  • MySQL索引创建与使用

    万次阅读 多人点赞 2018-08-06 18:49:59
    声明:本人主要简单示例MySQL中的单列索引、组合索引创建与使用。 索引创建: 建表时创建: CREATE TABLE 表名( 字段名 数据类型 [完整性约束条件], ……, [UNIQUE | FULLTEXT | SPATIAL] INDEX | KEY ...
  • MySQL创建索引的三种方式

    千次阅读 2016-11-04 17:15:00
    MySQL各版本,对于add Index的处理方式是不同的,主要有三种: (1)Copy Table方式这是InnoDB最早支持的创建...这个方式创建索引,创建过程,原表是可读的。但是会消耗一倍的存储空间。 (2)Inplace方式这是...
  • MySql示例6:创建索引.zip,MySql示例6:创建索引.zip,MySql示例6:创建索引.zip,MySql示例6:创建索引.zip
  • mysql创建唯一索引

    万次阅读 2019-06-14 11:45:56
    查看索引 show index from 数据库表名 alter table 数据库add index 索引名称(数据库字段名称) PRIMARY KEY(主键索引) ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) UNIQUE(唯一索引) ALTER TABLE `...
  • mysql 添加索引 创建索引

    万次阅读 多人点赞 2018-05-08 10:59:46
    转载自https://www.cnblogs.com/a-du/p/7117837.html---------------------------------------------------------------------------- 1.添加PRIMARY KEY(主键索引) ALTER TABLE `table_name` ADD PRIMARY KEY (`...
  • mysql 5.6 创建索引导致表锁阻塞查询

    万次阅读 2017-07-14 14:23:00
    今天遇到一个表锁,对表进行select操作阻塞,最后发现在表操作时的时候执行了创建索引,导致整个表锁了 测试如下:  1.先执行一个慢查询  mysql> select sleep(500) from order_log;  2.对表进行创建索引操作...
  • Mysql创建索引、增加索引和删除索引

    千次阅读 2019-01-20 15:12:08
    MySQL中创建表的时候,可以直接创建索引。基本的语法格式如下: CREATE TABLE 表名(字段名 数据类型 [完整性约束条件], [UNIQUE | FULLTEXT | SPATIAL] INDEX | KEY [索引名](字段名1 [(长度)] [ASC | DESC]) ); ...
  • MySQL创建索引

    万次阅读 2013-03-20 10:55:22
    创建索引的语法是: CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [USING index_type] ON tbl_name (index_col_name,...) index_col_name: col_name [(length)] [ASC | DESC] 对于CHAR和VARCHAR列...
  • 通过图文给大家介绍了关于MySQL中两表关联的连接表如何创建索引的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
  • Mysql如何创建Hash索引

    千次阅读 2019-12-07 00:16:55
    MySQL创建Hash索引 以下是武汉理工大学数据库综合实验的一小部分 最近在写数据库实验,现在进行到索引部分,下面内容记录了学习过程需要的一些知识,本次笔记主要记录如何创建Hash索引 题目如下: 创建一个包含...
  • MySQL 创建索引(Create Index)的方法和语法结构及例子
  • MySQL的索引类型及创建索引

    万次阅读 2019-03-05 14:04:27
    MySQL目前主要有以下几种索引类型: 1.普通索引 2.唯一索引 3.主键索引 4.组合索引 5.全文索引 二、语法 CREATE TABLE table_name[col_name data type] [unique|fulltext][index|key][index_name](col_name...
  • MySQL创建索引 由于数据量的不断增大,在使用MySql查询时速度愈来愈慢,这时候有必要创建合适的索引来优化提升查询的速度。
  • MYSQL创建索引全过程

    2014-03-28 11:46:37
    代码复制粘贴 改下里面的参数 就可以用 而且参数 也有说明 简单易懂

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 247,924
精华内容 99,169
关键字:

mysql中创建索引

mysql 订阅