ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySQL 索引

2022-03-20 14:04:43  阅读:182  来源: 互联网

标签:index name utf8 索引 MySQL table NULL


直接创建索引

CREATE INDEX index_name ON table(column(length))

修改表结构的方式添加索引

ALTER TABLE table_name ADD INDEX index_name (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 table

创建唯一索引

CREATE UNIQUE INDEX index_name ON table(column(length)) 

修改表结构

ALTER TABLE table_name ADD UNIQUE 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`),
	UNIQUE indexName (title(length))
);

组合索引

平时用的SQL查询 语句一般都有比较多的限制条件,所以为了进一步榨取MySQL的效率,就要考虑建立组合索引。例如上表中针对title和time建立一个组合索引:

ALTER TABLE article ADD INDEX index_titme_time (title(50),time(10))

使用到上面的索引

SELECT * FROM article WHREE title='测试' AND time=1234567890;

SELECT * FROM article WHREE utitle='测试';

未使用到上面的索引

SELECT * FROM article WHREE time=1234567890;

添加三列的复合索引

alter table staffs add index idx_nap(name, age, pos);

只访问索引的查询

比如staffs表的情况,索引建立在(name,age,pos)上面,前面一直是读取的全部列,如果我们用到了哪些列的索引,查询时也只查这些列的数据,就是只访问索引的查询,如

select name,age,pos from staffs where name = 'July' and age = 25 and pos = 'dev'

select name,age from staffs where name = July and age > 25

标签:index,name,utf8,索引,MySQL,table,NULL
来源: https://blog.csdn.net/lcj6479/article/details/123611788

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有