• MySQL学习2---索引


    MySQL 索引

    MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。

    索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。

    创建索引时,你需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件)。

    实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。

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

    建立索引会占用磁盘空间的索引文件。

    普通索引

    创建普通索引

    CREATE INDEX indexName ON mytable(列名);

    修改表结构(添加索引)

    ALTER table tableName ADD INDEX indexName(列名);

    创建表的时候直接指定

    CREATE TABLE mytable(  
     
    ID INT NOT NULL,   
     
    username VARCHAR(16) NOT NULL,  
     
    INDEX [indexName] (username(length))  
     
    );

    创建唯一性索引

    CREATE UNIQUE INDEX index_name ON table_name;

    创建主键索引

    创建表的时候同时创建主键,主键索引自动创建;

    CREATE TABLE table_name ([...], PRIMARY KEY(列名))

    另外一种是已经创建表,没有指定主键,然后修改表加入主键,自动创建主键索引

    ALTER TABLE table_name ADD PRIMARY KEY 列名;

    创建多列索引

    CREATE INDEX index_name ON table_name(列名1,列名2);
    例如:
    MariaDB [test]> create index salary_age_index on IT_salary(薪资,年龄);

    删除索引的语法

    直接删除索引;
    DROP INDEX [indexName] ON mytable;

    修改表格时删除索引;
    ALTER TABLE table_name DROP INDEX index_name;

    删除主键索引:
    ALTER TABLE table_name DROP PRIMARY KEY;

    查看索引

    SHOW INDEX FROM table_name;

    SHOW KEYS FROM tabel_name;









     
  • 相关阅读:
    js 小数取整的函数
    VS2015 Apache Cordova
    C# 标签(条码)
    异步提交form的时候利用jQuery validate实现表单验证
    调试javascript
    Chrome 控制台console的用法
    MvcPager分页控件以适用Bootstrap
    更好理解接口
    为什么上班一天都是坐着,但仍会疲惫不堪?(转)
    如何解决空虚感?(转)
  • 原文地址:https://www.cnblogs.com/youxxn/p/8878128.html
Copyright © 2020-2023  润新知