Mysql中的索引、存储

索引的使用与数据库中表的引擎有一定的关联

索引的存储的数据类型分为两种: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 ;”将结束符还原

  

    二、存储函数的创建

      

原文地址:https://www.cnblogs.com/charging-for-ycp/p/7255698.html