基于DB的编程
现在我们大多数的开发都是基于数据库,虽然数据库为我们提供了事务机制,保证存储的数据的ACID,但是,当我们在完成一个业务操作时,涉及到对数据库的大量操作,如果把这些操作在一个事务中,肯定是安全的,但是这样的话其他的操作可能无法继续,性能获取下降。此时我们可以将事务尽可能的短,部分不涉及对后续操作有影响的我们可以采取程序控制,而不是完全借助数据库事务机制来完成。
少量使用大事务。
=====================================================================================================
多个系统使用一个DB:
DB挂接多个系统:一些系统主要采集数据,一些系统主要查询数据(或者抓取数据到自己的系统)
系统的DAO层就是构建SQL(按照业务构建SQL)
left join---从小到大进行连接(大类别到小类别)
inner join
case when --汇总或者查询
where
group by
order by
case when 类似于where 二次过滤(行转列)
最后构建满足页面需求的报表格式数据(业务数据+辅助数据(动态表头等))
=====================================================================================================
批量插入:
insert into select *
或者
batch批量执行SQL语句
=====================================================================================================
数据库里面的数据:
辅助数据(元数据):---主要就是管理数据,一般变化少
业务数据:采集的数据 (要对这些数据进行分析)--通过外键进行组织,最后形成一张表连接关系(先后关系,也体现出业务处理产生的数据的先后顺序)
编程:
存储过程的编程:编程主要就是存储临时变量,这是就会使用变量进行存储,此时会使用临时表,待存储过程执行完毕之后,临时数据就可以删除,所以存储过程里面一般 都会存在临时表进行存储数据(创建临时表,插入临时数据到临时表,转存临时表数据到业务表,删除临时表),此时就涉及到存储过程编程的一个流程处理过程。
=====================================================================================================
为什么现在数据库都讲解集群这些技术。
下面说说自己的理解,不管是什么技术,显示世界的工作都是人工进行操作,慢慢的出现了自动化的处理过程,用计算机进行模拟现实世界的工作,这样首先就是一些硬件,比如存储设备,就是对业务数据的存储,但是随着数量的越来越多,存储容量也越来越大,但是一个毕竟多不了多少,所有出现了多个存储设备进行存储。但是怎么存储,这样又有专门的存储软件,比如数据库软件,所以他可以吧数据进行存储到存储到设备里面,但是一个数据库软件要有好多的链接的话,这样这些链接也需要占用内存的容量,所以必须使用多个数据库软件操作存储设备,这样一来并发量也就比较好,但是这样一来一个业务数据通过多个数据库实例操作分布在不从的存储设备上(为什么那?因为IO是有限制的,所以多存储来并发这些问题),这样数据库并发压力就会减少,但是如何减少,这样的话就需要进行数据库请求的负载均衡技术,数据库的压力解决的方案还有一些中间件进行解决。
基于DB的编程的更多相关文章
- C++服务器开发之基于对象的编程风格
Thread.h #ifndef _THREAD_H_ #define _THREAD_H_ #include <pthread.h> #include <boost/functio ...
- 通过JavaScript原型链理解基于原型的编程
零.此文动机 用了一段时间的Lua,用惯了Java C++等有Class关键字的语言,一直对Lua的中的面向对象技术感到费解,一个开源的objectlua更是看了n遍也没理解其中的原理,直到看到了Pr ...
- Unity基于响应式编程(Reactive programming)入门
系列目录 [Unity3D基础]让物体动起来①--基于UGUI的鼠标点击移动 [Unity3D基础]让物体动起来②--UGUI鼠标点击逐帧移动 时光煮雨 Unity3D让物体动起来③—UGUI DoT ...
- vc 基于对话框多线程编程实例——线程之间的通信
vc基于对话框多线程编程实例——线程之间的通信 实例:
- 基于Socket网络编程
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/a2011480169/article/details/73602708 博客核心内容: 1.Sock ...
- 异常处理、socke基于TCP协议编程
一.异常处理 1.错误和异常 1.程序中难免出现错误,而错误分成两种 (1)语法错误(这种错误过不了Python解释器的语法检测,必须在程序执行前改正) #语法错误示范一 if #语法错误示范二 de ...
- AutoSharedLibrary -- 基于模板元编程技术的跨平台C++动态链接载入库
基于模板元编程技术的跨平台C++动态链接载入库.通过模板技术,使用者仅需通过简单的宏,就可以使编译器在编译期自己主动生成载入动态链接库导出符号的代码,无不论什么额外的执行时开销. extern &qu ...
- spring之AspectJ基于xml AOP编程
一.引言: AspectJ框架不仅实现了面向切面编程,而且还支持注解,spring将它引入自己的规范之中. 二.需要了解: AspectJ是基于java语言的AOP框架 spring2.0之后支持As ...
- 基于任务的编程模型TAP
一.引言 在上两个专题中我为大家介绍.NET 1.0中的APM和.NET 2.0中的EAP,在使用前面两种模式进行异步编程的时候,大家多多少少肯定会感觉到实现起来比较麻烦, 首先我个人觉得,当使用AP ...
随机推荐
- js urlencode
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 一次完整的HTTP事务是怎样一个过程
当我们在浏览器的地址栏输入 www.linux178.com,然后回车,回车这一瞬间到看到页面到底发生了什么呢? 以下过程仅是个人理解: 域名解析 --> 发起TCP的3次握手 --> 建 ...
- Java中泛型区别以及泛型擦除详解
一.引言 复习javac的编译过程中的解语法糖的时候看见了泛型擦除中的举例,网上的资料大多比较散各针对性不一,在此做出自己的一些详细且易懂的总结. 二.泛型简介 泛型是JDK 1.5的一项新特性,一种 ...
- 最近公共祖先问题 LCA
2018-03-10 18:04:55 在图论和计算机科学中,最近公共祖先,LCA(Lowest Common Ancestor)是指在一个树或者有向无环图中同时拥有v和w作为后代的最深的节点. 计算 ...
- FastJson中文乱码
初学springboot使用fastJson替换默认的jackson后出现中文乱码 解决方式1: import java.util.ArrayList; import java.util.List; ...
- 《Effective C#》读书笔记——条目13:正确地初始化静态成员变量<.NET资源管理>
我们知道在C#语言中创建一个类型的实例前,就应该初始化该类型的所有静态成员变量.C#语言为我们提供了静态初始化器和静态构造函数.其中,静态构造函数是一个特殊的构造函数,将在其他所有方法执行前以及变 ...
- [vuex]——使用vuex解决模块间传值问题
二月的第四个周末,在家.受寒流的影响,深圳天气持续冰冻了好几天,天冷人就变得懒动,迷迷糊糊睡到了快十点,终于在饥饿的催促下起床. 和妹子吃完粥后,百无聊赖.透过窗户,发现太阳依旧没有露头的打算,我们也 ...
- 【转】HTTP协议—— 简单认识TCP/IP协议
转自:www.cnblogs.com/roverliang/p/5176456.html 大学没读计算机专业,所以很多的专业知识都不知道.既然已经从事了IT这个行业,就势必要去了解下网络底层,虽然实际 ...
- 身份证&银行卡识别方案
一. 调用第三方服务 腾讯云OCR识别: 实现方法:Post图片 URL到腾讯云服务器.Post图片文件 到腾讯云服务器 b. 报价: 月接口调用总量 0<调用量≤1000 1000&l ...
- 20181009-7 选题 Scrum立会报告+燃尽图 06
Scrum立会报告+燃尽图(06)选题 此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2196 一.小组介绍 组长:刘莹莹 ...