Mysql数据库的索引类型有哪些?

Java编程语言是一种简单、面向对象、分布式、解释型、健壮安全、与系统无关、可移植、高性能、多线程和动态的语言。如今Java已经广泛应用于各个领域的编程开发。

MySQL索引类型:

1、普通索引

最基本的索引,它没有任何限制,用于加速查询。

创建方法:

a. 建表的时候一起创建

CREATE TABLE mytable ( name VARCHAR(32) , INDEX index_mytable_name (name) );1复制代码类型:[java]

b.建表后,直接创建索引

CREATE INDEX index_mytable_name ON mytable(name);1复制代码类型:[java]

c.修改表结构

ALTER TABLE mytable ADD INDEX index_mytable_name (name);1复制代码类型:[java]

注:如果是字符串字段,还可以指定索引的长度,在列命令后面加上索引长度就可以了(例如:name(11))

2、唯一索引

索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。

创建方法:

a. 建表的时候一起创建

CREATE TABLE mytable ( `name` VARCHAR(32) , UNIQUE index_unique_mytable_name (`name`) );1复制代码类型:[java]

b.建表后,直接创建索引

CREATE UNIQUE INDEX index_mytable_name ON mytable(name);1复制代码类型:[java]

c.修改表结构

ALTER TABLE mytable ADD UNIQUE INDEX index_mytable_name (name);1复制代码类型:[java]

注:如果是字符串字段,还可以指定索引的长度,在列命令后面加上索引长度就可以了(例如:name(11))

3、主键索引

是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值。一般是在建表的时候同时创建主键索引。

创建方法:

a. 建表的时候一起创建

CREATE TABLE mytable ( `id` int(11) NOT NULL AUTO_INCREMENT , `name` VARCHAR(32) , PRIMARY KEY (`id`) );1复制代码类型:[java]

b.修改表结构

ALTER TABLE test.t1 ADD CONSTRAINT t1_pk PRIMARY KEY (id);1复制代码类型:[java]

注:如果是字符串字段,还可以指定索引的长度,在列命令后面加上索引长度就可以了(例如:name(11))

4、组合索引

指多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。使用组合索引时遵循最左前缀集合。

创建方法:

a. 建表的时候一起创建

CREATE TABLE mytable ( `id` int(11) , `name` VARCHAR(32) , INDEX index_mytable_id_name (`id`,`name`) );1复制代码类型:[java]

b.建表后,直接创建索引

CREATE INDEX index_mytable_id_name ON mytable(id,name);1复制代码类型:[java]

c.修改表结构

ALTER TABLE mytable ADD INDEX index_mytable_id_name (id,name);1复制代码类型:[java]

5、全文索引

主要用来查找文本中的关键字,而不是直接与索引中的值相比较。

fulltext索引跟其它索引大不相同,它更像是一个搜索引擎,而不是简单的where语句的参数匹配。

fulltext索引配合matchagainst操作使用,而不是一般的where语句加like。

它可以在createtable,altertable,createindex使用,不过目前只有char、varchar,text列上可以创建全文索引。

创建方法:

a.建表的时候一起创建

CREATE TABLE `article` ( `id` int(11) NOT NULL AUTO_INCREMENT , `title` char(250) NOT NULL , `contents` text NULL , `create_at` int(10) NULL DEFAULT NULL , PRIMARY KEY (`id`), FULLTEXT (contents) );1复制代码类型:[java]

b.建表后,直接创建索引

CREATE FULLTEXT INDEX index_article_contents ON article(contents);1复制代码类型:[java]

c.修改表结构

ALTER TABLE article ADD FULLTEXT INDEX index_article_contents (contents);1复制代码类型:[java]

虽然索引可以增加查询数据,但对于更新、创建或者删除的时候,需要去维护索引,导致性能会受影响,因此,索引也不能建立太多。

(0)

相关推荐

  • (8条消息) mysql 基础教程 很全

    (一)数据库操作 1.创建数据库 create database 数据库名; create database runoob; 2.选择数据库 use 数据库名; use runoob; 3.删除数据库 ...

  • mysql在建表语句中添加索引

    普通索引创建 创建普通索引,即不添加 UNIQUE.FULLTEXT 等任何参数. [例]创建表名为 score 的数据表,并在该表的 id 字段上建立索引,SQL 语句如下: CREATE tabl ...

  • MySQL(二):快速理解MySQL数据库索引

    索引 基本概念:索引是在存储引擎层实现的,而不是在服务器层实现的,所以不同存储引擎具有不同的索引类型和实现. 数据结构 Tree 指的是 Balance Tree,也就是平衡树.平衡树是一颗查找树,并 ...

  • mysql数据库字段类型的选择原则

    原文链接:http://blog.csdn.net/u013412790/article/details/51615407 数据库类型的选择对数据库的性能影响很大  1 . 数据类型会影响存储空间的开 ...

  • MySQL数据库 InnoDB引擎的索引原理概述与设计索引调优简述

    MySQL的InnoDB引擎比较常用,了解它的索引原理,才能在设计索引的时候得心应手,轻松应对数据库表的优化. 1.聚集索引 也叫聚簇索引. 1.1.必然会有聚集索引 聚集索引 != 主键索引: 任何 ...

  • UC头条:MySQL数据库定时备份到其他电脑

    最近我的一个学弟问了我一个问题,说他要实现一个功能,他老师给他提出来一个问题,让他的项目实现定时备份数据库到其他电脑,确保安全.他就来问我,还好我之前弄过,虽然我是干前端的,哈哈哈,之前学的比较杂. ...

  • 【竺】数据库笔记7——Mysql数据库备份

    *. mysql -u username -p password: 这个命令用于输入用户名和密码登陆mysql服务器: *.show databases;:用于查看mysql服务器中的数据库情况(会罗 ...

  • MySQL数据库有哪些优势特点?Linux数据库

    为什么众多企业都选择MySQL数据库?目前,绝大多数使用Linux操作系统的互联网企业都使用MySQL作为后端的数据库.MySQL是互联网领域里非常重要的.深受广大用户欢迎的一款开源关系型数据库软件. ...

  • Power BI连不上MySQL数据库?怎么破?

    - 1 -  直连的问题及解决办法 今天要连一个别人管理的MySQL数据库抽取数据,本来想着是个很简单的事儿,因为Power BI本身就提供了MySQL的连接器: 然鹅,当我很开心地去点"连 ...

  • win10专业版能安装上mysql数据库么

    提问win10专业版能安装上mysql数据库么?如果能,能不能给个安装步骤? 网上百度的各种方法都试过了装不上,请看清楚是win10专业版 1.同时按下键盘组合键Win+i,打开设置窗口,点击&quo ...

  • 数据库约束有什么作用?Linux运维MySQL数据库

    数据库是存储数据的仓库,由数据库表组成.数据库本质是一个文件系统,数据库以特定的格式存储数据,用户可以添加.修改.删除和查询数据库中的数据.对于运维工作者或者数据库工作者来说,数据库约束是学习数据库相 ...