索引的使用与数据库中表的引擎有一定的关联
索引的存储的数据类型分为两种:BTREE/HASH
MYISAM/InnoDB 存储类型只支持BTREE
MEMORY/HEAP支持两种
一般情况下,有以下几种常用的索引:
普通索引: INDEX--------- CREATE table t1 (...... , INDEX 索引名(列名))------没有唯一性的限制
唯一索引:UNIQUE INDEX 主键为一种特殊的唯一索引。因为主键不能为空,唯一索引是可以为空的--------------CREATE table t2(......., UNIQUE INDEX 索引名(列名))
单列索引:一个表中可以有多个单列索引------------CREATE table t3(......., INDEX SingleIdx 索引名(列名)),上述两种索引皆为单列索引
组合索引:一个表的多个字段上创建的索引,只有在查找的字段中使用了这些字段的左边字段,才会使用该组合索引(遵循最左前缀组合索引)
CREATE table t4(......., INDEX MultiIdx 索引名(列名))
全文索引:FULLTEXT INDEX(MyISAM支持)------CREATE table t5(......., FULLTEXT INDEX FullTxtIdx 索引名(列名))
空间索引:SPATIAL CREATE table t6(......., SPATIAL INDEX spatIdx 索引名(列名))
对索引进行增删改查
使用ALTER TABLE创建索引 ALTER TABLE t1 ADD INDEX 索引名(colname)
使用CREATE TABLE创建索引 CREATE INDEX index_name ON tablename(colname)
使用ALTER TABLE删除索引 ALTER TABLE t2 DROP 索引名
使用DROP TABLE删除索引 DROP INDEX index_name ON t3
存储的使用:
一、存储过程的创建:
CREATE PROCEDURE CalUserSum()
BEGIN
SELECT SUM(user_id),COUNT(user_id) FROM fm_user;
END;
使用存储: CALL 存储名
一般情况下,为了区分存储过程与MySQL的结束符,我们可以使用DELIMITER关键字来改变MySQL默认的结束符,存储过程定义完毕之后,我们再使用“DELIMITER ;”将结束符还原
二、存储函数的创建