MySQL索引

(1)创建索引:CREATE INDEX index_name ON table(column(length))

(2)删除索引:DROP INDEX index_name ON table

(3)创建唯一索引:CREATE UNIQUE INDEX indexName ON table(column(length))

()创建主键索引: 删除主键索引,需要先删除AUTO_INCREMENT

CREATE TABLE `table` (

    `id` int(11) NOT NULL AUTO_INCREMENT ,

    `title` char(255) NOT NULL ,

    PRIMARY KEY (`id`)

);

1.主键索引(一个表的主键)

2.唯一索引(索引列的值必须唯一,但允许有空值;null是使用不到索引的,最好不要有null)

3.普通索引(最基本的索引,无任何限制)

4.联合索引(将多个列组合在一起创建索引) 组合索引

mysql执行查询中,只会使用到一个索引

最左前缀原则:意思是使用组合索引的时候,从左到右依次匹配,否则不会使用联合索引。

例如ALTER TABLE people ADD INDEX lname_fname_age (lame,fname,age);其实MySQL是建立了三个索引,分别是:单列索引lame,联合索引(lame,fname),联合索引(lame,fname,age)。mysql索引的时候只会使用其中一个索引,所以创建组合索引的时候,尽量把使用频繁的放在左边

注意:

最适合创建索引的是出现在where子句中的列或是出现在连接子句中的列

对字符串类型进行索引的时候,应该指定一个前缀长度,比如索引前多少个字符

根据业务情况创建组合索引,

组合索引遵循最左前缀原则

like查询,%不能在前,类似左原则

mysql查询只使用一个索引,如果where子句中使用了索引,那么order by中的列是不会使用索引的(此处where中使用了A索引,order by中是否会使用A索引,或者是否使用其他索引???)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容