首页 > 代码库 > Sql优化和体系结构
Sql优化和体系结构
01、SQL优化与体系结构
本章目标:
1.了解sql优化基本技巧
2.掌握使用索引提高查询效率
3.了解对表进行分区操作
4.了解常见数据库对象
1.sql优化技巧
1)一般优化技巧:
不要用*代替所有列名
删除所有数据用truncate代替delete
用not exists 代替 not in
用exists 代替 in
用exists代替distinct
注:后三点在11g之前有用,11g之后本身进行了优化
第5条的实例如下:查询出出现在教师表里的不同的部门编号
select distinct t.deptno from teacher t where t.deptno is not null ;
select * from dept where exists (select 1 from teacher where teacher.deptno = dept.deptno)
2)表链接方法
驱动表的选择
where子句的连接顺序:表连接关系放在前面,过滤记录越多的条件字句应放置到后面
sql执行顺序是从右往左进行。
驱动表: from后面靠右的那个表就是驱动表(两张表都没有索引的情况);有索引的情况下,应该是没索引的那张表是驱动表
驱动表要选择小表
3)索引
索引分为逻辑分类和物理分类,逻辑分类包括:单列或组合索引、唯一或非唯一索引、基于函数索引;物理分类包括:分区或非分区索引、B树索引、正常或反向键索引、位图索引
什么情况下可以创建索引?一般主要包括:频繁搜索的列、经常排序分组的列、经常链接的列、指定单独的表空间(可以增加IO性能)
索引使用原则:表中导入数据后再创建索引;在适当的表和字段上创建索引,如果经常检索的数据少于表中15%则需要创建;限制表中索引的数目
4)表分区
把表中数据划分成若干部分,并存储在不同的位置。表分区的有点是能改善查询的性能,而且表也更容易管理,便于备份和恢复同时也提高了数据的安全性。
1 select * from jx0404 partition(pt_2016-2017-1);
Sql优化和体系结构
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。