1.视图
- 对于复杂的语句,多次使用时,要维护是一件很麻烦的事情。
- 解救的办法:就是定义一个视图,相当于编程语言中的封装。
- 定义视图
语法如下:
create view v_student as select * from student where name = zhangsan;
调用:
select * from v_student;
2.事物
当一件事情需要多个sql完成时,如果其中的某条语句出错,则希望整个操作都退回。
主要作用是保证命令的完整性。
2.1事物的四大特性
- 原子性:事物中的全部操作在数据库中是不可分割的,要么全部完成,要么都不完成。
- 一致性:几个并行执行的任务,其执行结果必须与按照某一顺序执行的结果一致。
- 隔离性:事物的执行不受其他事物的干扰,事物执行的结果对其他事物必须是透明的。
- 持久性:对于已经提交的事物,系统必须保证事物对该数据库的改变不曾丢失,即使数据库出现故障。
2.2 使用事物的情况
数据被更改时,包括insert、updata、del等操作进行时使用事物。
- 要求:表的类型必须是innodb或者bdb类型,才可以使用事物。
- 查看表的类型:show create table students;
- 修改表的类型:alter table 表名称 engine=innodb;
事物语句:
- 开启:begin;
- 提交:commit;
- 回滚:rollback;
2.3示例
begin;
updata student set name=’wl’ where id =1;
commit;# 提交
updata student set name=’wyy’ where id =1;
collback;# 回滚
3.索引
在一般的数据库系统中,读写的比例一般是10:1,而且插入和更新操作很少出现性能问题,遇到最多的,最容易出现的问题还是一些查询操作,所以查询语句的优化是重中之重。当然了,在数据库中的数据很多时,查找数据会变得很慢,而索引能够提高数据库的访问性能。主键和位移索引都是索引,可以提高查询速度。
3.1选择列的数据类型
1)越小的数据越好:越好的数据类型通常在磁盘、内存和CPU缓存中需要的空间更小,处理起来也更快。
2)简单的数据类型更好:整数比字符型类型更好,处理的开销更小。
3)尽量避免null:应该指定列为not null。
3.2 索引的操作
(1)索引的分类
索引一般建立在where语句后面的查询项上,提高查询速度。索引分为单列索引和组合索引。单列索引,顾名思义就是一个索引只包含单个列,一个表可以有多个单个索引,但是这却不是组合索引。组合索引:一个索引包含单个列。
(2)查看索引
对索引的影响:or语句、范围的数据如>、<等符号。
查看索引:show index from student;
创建索引:create index indexname on tablename(username(len),title(len));
删除索引:drop index [indexname] on tablename;
3.3 缺点
虽然索引提高了查询速度,但是对数据更新等操作会有影响,降低了更新表的速度,因为更新表时,数据库不仅要存储数据,还要存储索引。还有索引的建立会占用磁盘空间的索引文件。
3.4示例
开启时间运行监测 set profiling=1; 执行查询语句: select * from student where name=’wl’; 查看执行时间 show profiles; 创建索引 create index names on student(name(20)); 执行查询语句: select * from student where name=’wl’; 查看执行时间 show profiles;
来源:https://www.cnblogs.com/wl443587/p/10573672.html