数据库原理和应用

1.规则优化, 表现为sql 语句优化

2. 物理优化, 表现为 访问路径, 硬盘, 内存等,, 在已经创建了索引和排序文件的情况下, 需要考虑如何实现策略

3. 代价评估优化,  对多个候选策略 进行评估, 选择代价最小的一个,

一般来说: 查询的总代价 为 cpu 和 I/O代价之和.  ()输入输出)   然后考虑查询量

 

 

1: 内连接, 外联,自连接

    内连接 产生记录为M*N, 

笛卡尔积: m*n条记录,重复的也计算, select* from T1,T2, 若指定连接字段,为子查询, a 每一行与b每一行比较,相同的记录产出,重复          的也产出.  和内连接 是一样的产出记录, 等价于 using(fild) 用法,只是

自然连接: 在相同列上有相同值 的记录挑选出来,重复列去除,   将选择的结果尽量提前执行.

深入可以看sql执行计划

2  分表优化:

 将大表 分为若干个小表:  1永久分裂, 设计时考虑, 二: 临时分裂; 语法控制. 可以放在磁盘 或不同逻辑设备上

3.减少嵌套层数, 会成几何级的降低效率

4.利用视图:  从多个基本表或视图中导出的表,数据库只存定义,不存数据    . 为虚拟表: 可以crud 随真实数据而改变  优点: 提供某些数据的安全性, 异常数据复杂性, 简化查询, 特殊查询  sql: create view <viewName> {[col1, col2, col3 ]}  as<select 语句>          +上  [with chech option] : 表示在对视图修改,删除,插入, 仍要保证 selec语句的表达式, 注意: 对视图更新,删除时,也会更改基本表,这种情况下也就在视图只关联一个表时, 但是大部分视图都不可以更新: 1 带有group by, 聚集函数.多表关联; 来自表达式或常量,许删不许改.

5. gront:授权, revoke: 撤销授权    view  update query .....操作的权限

6. 索引优化: 索引占用存储空间和处理,并不是越多越好, 不必要的索引会是系统变慢,  难维护(更新难), 只读取 ,不更新的话还好,

   如果创建了主键,那么自动以主键升序 创建索引,

  建立 unique 索引事,列值唯一,cluster为簇索引: 留待研究

 

7 注意 对null 值的处理

8.  sql为原子性操作, commit 之前, 出现异常则,一系列操作回滚,无效, 也可以rollback, 回复, 但是如果commi成功那么久数据就永久性更改了. 即数据库事务

8, distinct (fild): 明显的有区别的,  去除重复

9  where (filed between  3 and 5)    exists: 检查某个属性是否有 元组,, 有返回记录返回true,无返回false    _ 代表一个字符,%通配任意个字符,  not exists 相反

10  count  max min avg sum

11:   where  having count(column)>5  

12  集合操作符: union 并(联合)   intersect 交(交叉,横断 横切) 跟sql 语句  except  除(把.... 除外)  后面跟sql语句

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值