索引和表都属于数据库中的一种对象,主要用来提高查询效率,数据库好比字典,数据好比字典中文字,那么索引就相当于目录
特点和使用场合:适合从海量数据中查询少量结果(大海捞针)提高查询效率
比如:性能瓶颈 sql效率
数据库优化:针对字段进行索引
但是,建立索引增加系统开销:1.占用表空间 2、增加、删除、修改数据效率降低
因为重新调整索引的结构,具有时间开销
总结:index 适用于大海捞针,很少修改数据的情况,最终提高查询效率
索引的底层结构原理:使用数据结构B-Tree 平衡二叉查找数 特点:查询效率高
- 增加索引:creat (clustered) index 索引名 on 表名(字段名)
聚集索引添加clustered,非聚集索引不需添加 clustered
- 删除索引:drop index 表名.索引名 (eg. drop index emp.name)
视图view 和表table、索引index都是数据库中的一种对象
用途:简化sql语句 特点:不会占据表空间、不会提高查询效率
- 创建视图:create view 视图名 as select 字段名 ..from 表名
creat view my_view1 as select id,name,salary from myemp where salary>5000
可以将其理解为一张虚拟的表 my_view1
- 在视图中查询语句 select * from my_view1
- 修改视图:改为薪水大于6000 alter view my_view1 as select id,name,salary from myemp where salary>5000
- 使用视图插数据,本质:向基础表myemp中插入数据 insert into my_view1 value(4,'Tony',9000)
- 删除视图 drop view my_view1