mysql索引怎么用
MySQL索引的概念
索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。上述SQL语句,在没有索引的情况下,数据库会遍历全部200条数据后选择符合条件的;而有了相应的索引之后,数据库会直接在索引中查找符合条件的选项。如果我们把SQL语句换成“SELECT * FROM article WHERE id=2000000”,那么你是希望数据库按照顺序读取完200万行数据以后给你结果还是直接在索引中定位呢?(注:一般数据库默认都会为主键生成索引)。
推荐课程:MySql教程。
索引分为聚簇索引和非聚簇索引两种,聚簇索引是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了;聚簇索引能提高多行检索的速度,而非聚簇索引对于单行的检索很快。
MySQL索引的类型
1. 普通索引
这是最基本的索引,它没有任何限制,比如上文中为title字段创建的索引就是一个普通索引,MyIASM中默认的BTREE类型的索引,也是我们大多数情况下用到的索引。 直接创建索引CREATE INDEX index_name ON table(column(length)) 修改表结构的方式添加索引ALTER TABLE table_name ADD INDEX index_name ON (column(length)) 创建表的时候同时创建索引CREATE TABLE `table` (`id` int(11) NOT NULL AUTO_INCREMENT ,`title` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,`content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL ,`time` int(10) NULL DEFAULT NULL ,PRIMARY KEY (`id`),INDEX index_name (title(length))) 删除索引DROP INDEX index_name ON table2. 唯一索引
与普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值(注意和主键不同)。如果是组合索引,则列值的组合必须唯一,创建方法和普通索引类似。 创建唯一索引CREATE UNIQUE INDEX indexName ON table(column(length)) 修改表结构ALTER TABLE table_name ADD UNIQUE indexName ON (column(length)) 创建表的时候直接指定CREATE TABLE `table` (`id` int(11) NOT NULL AUTO_INCREMENT ,`title` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,`content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL ,`time` int(10) NULL DEFAULT NULL ,PRIMARY KEY (`id`),UNIQUE indexName (title(length))以上就是mysql索引怎么用的详细内容,更多请关注小潘博客其它相关文章!
- 上一篇
linux源码安装mysql5.7
1. 下载mysql源安装包wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm2. 安装mysql源yum localinstall mysql57-community-release-el7-8.noarch.rpm3. 检查mysql源是否安装
- 下一篇
phpmyadmin怎么优化数据库?
PhpMyAdmin可以快速方便的优化mysql数据表,具体可以参考以下内容。 phpmyadmin怎么优化数据库? 1、首先用浏览器访问PhpMyAdmin。 2、输入mysql用户名和密码登录