背景:
在中海通的时候,我们用的大型内存数据Hana,他运算速度非常快,而且比较稳定。在工作的时候,我们用到最多的就是存储过程和索引,接下来,我们就来简单说一下索引这个东西。话不多说,我们先来一个简单的小例子证明一下索引的意义和作用!
环境:
数据库:MySQL
工 具 :navicat 11.0
执行流程:
1、我首先在数据库中新建一个test测试库。
2、在test测试库中新建一张t_test测试表。
3、在t_test表里面添加一些简单的测试数据,大约13w条。
4、先查找13w数据里面的特定一条测试数据,比较特殊的,大家注意他的耗时
5、执行sql语句:
然后再执行上条查询语句,注意耗时create index Index_value on test.t_test(strvalue)#创建索引语句create index index_name on Table(cloumn)
6、为了证明索引的作用,我们执行sql语句
然后再执行上述查询语句,注意耗时drop index Index_value on test.t_test #撤销索引
总结:
1、索引的概念:
索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。上述SQL语句,在没有索引的情况下,数据库会遍历全部13w条数据后选择符合条件的;而有了相应的索引之后,数据库会直接在索引中查找符合条件的选项。如果我们把SQL语句换成“SELECT * FROM Table WHERE id=好几亿”,那么你是希望数据库按照顺序读取完亿万行数据以后给你结果还是直接在索引中定位呢?上面的小例子鲜明的耗时对比肯定已经给了你答案。
索引分为聚簇索引和非聚簇索引两种,聚簇索引是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了;聚簇索引能提高多行检索的速度,而非聚簇索引对于单行的检索很快。
本篇文章意义就是要我们注意到索引的意义和作用以及一些简单概念,有关于索引的具体内容,请关注,静等下次分享。