zoukankan      html  css  js  c++  java
  • 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;









     
  • 相关阅读:
    asp.net正则匹配嵌套Html标签
    sql语句插入百万测试数据
    js判断网页是真静态还是伪静态的方法
    sql自动创建表并复制数据
    百度地图API-搜索地址、定位、点击获取经纬度并标注
    kindeditor自定义插件插入视频代码
    mongo 取随机100条数据写入Excel
    python实现RSA加密和签名以及分段加解密的方案
    装饰器写法
    大转盘抽奖概率 固定每个区域的中奖几率
  • 原文地址:https://www.cnblogs.com/youxxn/p/8878128.html
Copyright © 2011-2022 走看看