zoukankan      html  css  js  c++  java
  • MySQL 索引

    MySQL 索引的建立对于 MySQL 的高效运行时很重要的,索引可以大大Tiga MySQL 的检索速度。
    • 打个比方,如果合理的设计且使用索引的 MySQL是一辆兰博基尼的话,那么没有设计和使用缩影的 MySQL 就是一个人力三轮车。
    • 拿汉语字典的目录页(索引)打个比方,我们可以按拼音、笔画、偏旁部首等排序的目录(索引)快速查找需要的字
    • 索引分单列索引和组合索引,单列索引,即一个索引只包含一个列,一个表可以有多个单列索引,但这不是组合索引,组合索引,即一个索引包含多个列。
    • 创建索引时,你需要确保该索引在 SQL 查询语句的条件(一般作为 where 字句的条件)
    • 实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录
    • 缺点:

    • 上面都在说使用索引的好处,但过多的使用索引将会造成滥用,因此索引也会有它的缺点:
      • 虽然索引大大提高了查询速度,同时却会降低更新表的速度,如针对表进行 INSERT、UPDATE和DELETE.因为更新表时,MySQL 不仅要保存数据,还要保存一下索引文件。建立索引会占用磁盘空间的所有文件。
    • 普通索引

      • 创建索引
      • CREATE INDEX indexName ON mytable(username(length));
      • 如果是 CHAR、VARCHAR 类型,length可以小于字段实际长度,如果是 BLOB 和 TEXT 类型,必须指定 length。
      • 修改表结构(添加索引)
      • ALTER table tableName ADD INDEX indexName(columnName)
      • 创建表的时候直接指定
      • CREATE TABLE mytable( ID INT NOT NULL , username VARCHAR(16) NOT NULL, INDEX [indexName] (userName(length)));
      • 删除索引的语法
      • DROP INDEX [indexName] ON mytable;
    • 唯一索引

      • 他与前面的普通索引类似,不同的就是:
        • 索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一
      • 创建方式
      • CREATE UNIQUE INDEX indexName ON mytable(username(length))
      • 修改表结构
      • ALTER table mytable ADD UNIQUE [indexName] (username(length))
      • 创建表的时候直接指定
      • CREATE TABLE mytable(ID INT NOT NULL, username VARCHAR(16) NOT NULL, UNIQUE [indexNmae] (username(length)));
  • 相关阅读:
    博客用Markdown编辑器插入视频
    软件工程网络15个人作业3——案例分析
    软工网络15结对编程练习
    软件工程15个人阅读作业2
    软件工程第一次个人阅读
    Java课程设计—学生成绩管理系统(201521123005 杨雪莹)
    Java课程设计—学生成绩管理系统
    网络15软工个人作业5——软件工程总结
    软工网络15个人作业4——alpha阶段个人总结
    软件工程网络15个人作业3——案例分析
  • 原文地址:https://www.cnblogs.com/jcjc/p/12463767.html
Copyright © 2011-2022 走看看