MySQL 建立索引

建立索引的必要性

  • 主键默认是建立索引的,而且具有唯一性
  • 合适地建立索引后比不建立索引,提高了查询速度

创建索引的语法:

  • 简单索引(可以有重复数据)
  create index  [indexname]  on [tablename]([column_name]);`

举例子说明如:

  • 创建一个数据表,设定一些初始的数据,然后采用
 (insert  [tablename] ([column_name],[column]_name)...  select [column_name] [column_name]... from [tablename] 

  • 按照此方法设置了一张具有重复数据,数据量达到了一千六百多万的数据表
    MySQL 建立索引_第1张图片
  • 针对一张将近一千万数据库的数据表,查询一个设置索引的与不设置索引的列之间的差异,因为数据的重复性较高,所以查询时采用查询不存在的数据,这样就可以遍历整个数据表
  • 数据库字段
    MySQL 建立索引_第2张图片

  • 为name 字段创建简单索引
    这里写图片描述
    花了一分多钟

  • 分别对创建缩影的 name 字段和 没有创建索引的 date1 ,id字段 进行查询
    MySQL 建立索引_第3张图片
    MySQL 建立索引_第4张图片
    MySQL 建立索引_第5张图片
  • 可以看出没有设置索引的date1 字段比有设置索引的查询时间慢了很多,但是我们没有为id 设置设置索引啊?
  • 其实是在创建表时 我设置了id 为主键,数据库引擎默认给主键设置了索引;

创建索引,影响增改删的效率

数据的变化导致索引结构也发生变化
举例:
MySQL 建立索引_第6张图片

  • 可以看出 在创建索引后对10w条数据进行修改时,需要3.62秒的时间,而删除索引后只需要0.5秒以内的时间。所以建立索引对增删改的影响还是比较大的。

你可能感兴趣的:(MySql)