MySQL第41课~索引的创建和查看
大型的数据库和高流量的网站中,索引很重要。可以显著提高查询的技能,也是开发人员和管理人员必会的基本操作。
索引的原理
数据库引擎用来快速数据的数据结构。根据查询来创建索引,盲目在表上添加索引,会增加数据库的大小,并降低正常的运行速度。
举例:
如果你想查找一个在北京市的人,在没有索引列表的情况下,SQL会查询顾客表中的所有记录,如果一个表中的数据非常之多,要查很多,如果有一个专门的北京索引,那就可以直接在里面查询。

索引一般是二进制树进行存储,在MySQL中可以展示为表。
创建索引为加快查询速度
首先让MySQL展示一个查询是如何进行的,在查询语句前添加一个explain

就会展示出类型,行数,等数据。这里的ALL是一个全表的扫描,行数是读取了多少行
现在添加索引
create index,索引名字可以用idx或者ix,后面紧跟下划线,这里查询的是district,所以可以是idx_district.后面写on ,连接表明和列名。
单独执行这句,再单独执行上一句,发现,展示的type就是ref了。行数也只需要查2行

中间的possible keys也是索引的内容,执行了最佳的索引。
查看索引 | Viewing Indexes
反正查看就是展示,show
这给表格里有4个
从上到下,Collation是排序规则,A是升序,D是降序。Cardinality是基数,表示估计索引中为唯一值的估计数量。输入ANALYZE TABLE可以获得重新的统计,是精确值。
第一个是主键,又称聚集索引 Clustered Index
添加主键的时候,就会自动添加
后面三行都是二级索引,每创建一个二级索引,MySQL会自动将id或主键纳入二级索引中。
Secondary Indexes
然后最右边是索引类型,BTERR,二进制树。在表中有直观的体现。

在面板中直接打开,任意一个表格,就会依次看到columns,索引,外键,触发器,点击就可以看到索引的多少,可以看到就代表已经启用。
