招聘需求系列之六
来源:互联网 发布:大连知润培训 编辑:程序博客网 时间:2024/05/02 16:42
终于到了最后的两个大头,一个是设计模式,一个是SQL,数据库博主用过SQLITE,SQL SERVER ,MYSQL和ORACLE。
真正用的多的是ORACLE,包括其强大的事务,存储过程等等。这几个数据库的区别还是挺大的,很多用法都不一样,笔试面试和工作中最大的问题就是性能调优和联合查询了,
性能主要就是考虑到1SQL语句的写法2索引,视图等的使用3ORACLE本身的性能4数据量是否过大
举例说当查找时用索引很快,大批量删除时用ROWID很快,当数据量太大时就需要分表,分表有两种垂直和水平,垂直就是表结构拆分,水平就是只拆数据,
把数据分类存到不同表,这个公司出现过单表接近2E的数据,还有就是SQL的优化,之前也有遇到查询很慢,查了N个表最后还要GROUP BY的,最后被一个同事一个表一个表数据的查出来解决的。
博主的SQL并不好,但是工作中也用到了很多,正好借此机会再好好梳理下,一切就以ORACLE说了。
憋两天实在不想说什么,熟能生巧的东西跟业务逻辑比没什么可比性,研究太专业了就是DBA的事了,平时写的过程中主要是跟IBATIS结合,业务量大主要就是设计的表多,左右关联多表查询这类东西用的多,优化看情况,一般有了索引都不会太慢,从右向左执行之类。
ORACLE用的印象比较深的就是存储过程,因为做过批量删数据,涉及到5个表其中2个表数据了特别大,用ID删的,还用了临时表。几次优化和排错,隐式游标等。
至于分页用的MYBATIS的原理就是跳过多少个记录选择规定页的记录。ORALCE的SQL分页有个坑就是ROWNUM一定要先查出来起个别名,不然ROUWNUM会一直从1开始排当你从中间开始查询的时候就啥也娶不到了,他就这么设计你有什么办法。
常见SQL优化:
1对小表索引不会改善性能
2在变化较大且很多NULL的列建索引很有效
3物极必反查询25%的数据内时会极大加快反而所以会增加开销
4索引会使修改速度变慢
5索引占用空间
6两表关联字段适合建索引
7最好不要在同一物理介质存储索引和表,分开存储能避免争用驱动器。
8避免使用or,in比or快
9优化SQL是可先用分析工具看花费的时间和主要耗费在哪个部分
10执行SQL是从右往左分析,所以报错的时候会从后面开始报
11把<>的sql改写,因为用<>不会用索引
12删表truncate比delete快
1.INSERT INTO SELECT语句
语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1
要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。
2.SELECT INTO FROM语句
语句形式为:SELECT vale1, value2 into Table2 from Table1
要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中。
SQL查询处理的步骤序号:
(1) FROM <left_table>
(3) <join_type> JOIN <right_table>
(2) ON <join_condition>
(4) WHERE <where_condition>
(5) GROUP BY <group_by_list>
(6) WITH {CUBE | ROLLUP}
(7) HAVING <having_condition>
(8) SELECT
(9) DISTINCT
(9) ORDER BY <order_by_list>
(10) <TOP_specification> <select_list>
VIEW:create view XXX as select
INDEX:create index XXX on table(column)
临时表
CURSOR:declare XXX cursor for select
procedure:create or replace procedure XXX(参数) as/is
begin
end
TRIGGER:触发器不能建在临时表,不能建在视图,删除表后触发器跟着删除。create trigger XXX on table for 增删改可同时存在 as
- 招聘需求系列之六
- 招聘需求系列之二
- 招聘需求系列之四
- 招聘需求系列之5
- 招聘需求系列之七
- 招聘需求系列之一
- 招聘需求系列之三(加个提示目前还是中级的需求,后期会补高级的需求包括笔试面试题的系列)
- 《需求管理》系列之三需求评审
- 《需求管理》系列之四需求发布
- 2014校园招聘之六(待整理)
- 普林斯顿大学招聘之学术报告系列
- 软件工程师招聘需求
- intel 招聘需求
- 数据挖掘招聘需求
- android 招聘需求整理
- SoLoMo技术人员招聘需求
- 互联网公司招聘需求
- 《需求管理》系列之二需求定义、表达与组织
- No grammar constraints (DTD or XML schema).....两种解决方法
- Android 2016新技术
- 单一职责原则(Single Responsibility Principle)
- Android Studio 的 10 个你很有可能不知道的技巧
- 关于TextView的下划线
- 招聘需求系列之六
- 改进:js修改iOS微信浏览器的title
- 关于有偿提供拼图响应式后台的通知
- 汇编常用命令、指令一览
- 一天一个小案例android初阶之页面跳转
- Java-单机版的书店管理系统(练习设计模块和思想_系列 八 )
- 保证分布式系统数据一致性的6种方案
- 133. Clone Graph
- Java学习笔记(一)