Update ch01: 初识数据库.md
This commit is contained in:
@@ -369,6 +369,47 @@ INSERT INTO product VALUES('0007', '擦菜板', '厨房用具', 880, 790, '2008-
|
|||||||
INSERT INTO product VALUES('0008', '圆珠笔', '办公用品', 100, NULL, '2009-11-11');
|
INSERT INTO product VALUES('0008', '圆珠笔', '办公用品', 100, NULL, '2009-11-11');
|
||||||
COMMIT;
|
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)
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- 索引分类
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# 练习题
|
# 练习题
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user