摘要:
图片:雨中等待在讨论数据库索引的时候,经常会提到“选择性”(selectivity)这个概念。“选择性”是描述列值数据分布情况的一个重要属性。“选择性”和“基数”(cardinality)是两个密不可分的概念。“基数”就是一列中唯一值的数量,对于有唯一约束的列,“基数”等于表的总行数... 阅读全文
摘要:
首先通过一个非常简单的例子来解释为什么你需要数据库索引。 假设我们有一张数据表Emplyee,该表有三列: Employee_Name,Employee_Age,Employee_Address 表中有几万条记录。现在,我们要执行下面这条查询语句,查找出所有名字叫“Jesus”的员工... 阅读全文
摘要:
全表扫描(Full Table Scan)就是数据库为了检索到我们查找的数据而逐行的去扫描表中的所有记录。很明显,全表扫描是一种非常慢的SQL查询。想象一下,对一张百万级的表进行全表扫描性能有多差!使用索引可以有效避免全表扫描。 让我们看一些会造成进行全表扫描的情况: 统计信息还没有... 阅读全文