04_Mysql的索引详解 目录1、创建全文索引的方式​2、MySQL几种索引类型3、创建索引的通用语句4、普通索引的特点5、普通索引的三种创建方式6、唯一索引的特点和创建方式7、主键索引的特点8、主键索引的创建9、组合索引的特点10、怎样创建组合索引11、全文索引的特点12、全文索引的创建13、建立索引的缺点14、有关索引的注意事项1、创建全文索引的方式2、MySQL几种索引类型普通索引唯一索引主键索引组合索引全文索引3、创建索引的通用语句4、普通索引的特点是最基本的索引它没有任何限制。5、普通索引的三种创建方式6、唯一索引的特点和创建方式与前面的普通索引类似不同的就是索引列的值必须唯一但允许有空值。如果是组合索引则列值的组合必须唯一。它有以下几种创建方式创建唯一索引CREATEUNIQUEINDEXindexNameONtable(column(length))修改表结构ALTERTABLEtable_nameADDUNIQUEindexNameON(column(length))创建表的时候直接指定CREATE TABLE table (id int(11) NOT NULL AUTO_INCREMENT ,title char(255) CHARACTER NOT NULL ,content text CHARACTER NULL ,time int(10) NULL DEFAULT NULL ,UNIQUE indexName (title(length)));7、主键索引的特点是一种特殊的唯一索引一个表只能有一个主键不允许有空值。8、主键索引的创建一般是在建表的时候同时创建主键索引CREATETABLEtable (idint(11)NOTNULLAUTO_INCREMENT ,titlechar(255)NOTNULL,PRIMARYKEY(id));9、组合索引的特点指多个字段上创建的索引只有在查询条件中使用了创建索引时的第一个字段索引才会被使用。10、怎样创建组合索引ALTERTABLEtableADDINDEXname_city_age (name,city,age);11、全文索引的特点主要用来查找文本中的关键字而不是直接与索引中的值相比较。fulltext索引跟其它索引大不相同它更像是一个搜索引擎而不是简单的where语句的参数匹配。fulltext索引配合match against操作使用而不是一般的where语句加like。它可以在create tablealter tablecreate index使用不过目前只有char、varchartext列上可以创建全文索引。值得一提的是在数据量较大时候现将数据放入一个没有全局索引的表中然后再用CREATE index创建fulltext索引要比先为一张表建立fulltext然后再将数据写入的速度快很多。12、全文索引的创建1创建表的适合添加全文索引CREATE TABLE table (id int(11) NOT NULL AUTO_INCREMENT ,title char(255) CHARACTER NOT NULL ,content text CHARACTER NULL ,time int(10) NULL DEFAULT NULL ,PRIMARY KEY (id),FULLTEXT (content));2修改表结构添加全文索引ALTERTABLEarticleADDFULLTEXT index_content(content)直接创建索引CREATEFULLTEXTINDEXindex_contentONarticle(content)13、建立索引的缺点1.虽然索引大大提高了查询速度同时却会降低更新表的速度如对表进行insert、update和delete。因为更新表时不仅要保存数据还要保存一下索引文件。2.建立索引会占用磁盘空间的索引文件。一般情况这个问题不太严重但如果你在一个大表上创建了多种组合索引索引文件的会增长很快。索引只是提高效率的一个因素如果有大数据量的表就需要花时间研究建立最优秀的索引或优化查询语句。14、有关索引的注意事项a.不要在列上进行运算这将导致索引失效而进行全表扫描例如SELECT*FROMtable_nameWHEREYEAR(column_name)2017;b.不使用not in和操作