diff --git a/ch01: 初识数据库.md b/ch01: 初识数据库.md index 888c8b3..1f77296 100644 --- a/ch01: 初识数据库.md +++ b/ch01: 初识数据库.md @@ -369,6 +369,47 @@ INSERT INTO product VALUES('0007', '擦菜板', '厨房用具', 880, 790, '2008- INSERT INTO product VALUES('0008', '圆珠笔', '办公用品', 100, NULL, '2009-11-11'); COMMIT; ``` +### 1.2.9 索引 + +- 索引的作用 + +MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。 + +打个比方,如果合理的设计且使用索引的 MySQL 是一辆兰博基尼的话,那么没有设计和使用索引的 MySQL 就是一个人力三轮车。 + +拿汉语字典的目录页(索引)打比方,我们可以按拼音、笔画、偏旁部首等排序的目录(索引)快速查找到需要的字。 + +索引创建了一种有序的数据结构,采用二分法搜索数据时,其复杂度为 log2(N),1000多万的数据只要搜索23次,其效率是非常高效的。 + +- 如何创建索引 +创建表时可以直接创建索引,语法如下: +```sql +CREATE TABLE mytable( + +ID INT NOT NULL, + +username VARCHAR(16) NOT NULL, + +INDEX [indexName] (username(length)) + +); + +``` +也可以使用如下语句创建: +```sql +CREATE INDEX indexName ON table_name (column_name) + +ALTER table tableName ADD INDEX indexName(columnName) +``` + + + +- 索引分类 + + + + + # 练习题