Berkeley DB

数据库内功心法:数据库基本理论

核能气质少年 提交于 2019-11-28 22:27:02
1、数据库范式 第一范式:列不可分,eg:【联系人】(姓名,性别,电话),一个联系人有家庭电话和公司电话,那么这种表结构设计就没有达到 1NF; 第二范式:有主键,保证完全依赖。eg:订单明细表【OrderDetail】(OrderID,ProductID,UnitPrice,Discount,Quantity,ProductName),Discount(折扣),Quantity(数量)完全依赖(取决)于主键(OderID,ProductID),而 UnitPrice,ProductName 只依赖于 ProductID,不符合2NF; 第三范式:无传递依赖(非主键列 A 依赖于非主键列 B,非主键列 B 依赖于主键的情况),eg:订单表【Order】(OrderID,OrderDate,CustomerID,CustomerName,CustomerAddr,CustomerCity)主键是(OrderID),CustomerName,CustomerAddr,CustomerCity 直接依赖的是 CustomerID(非主键列),而不是直接依赖于主键,它是通过传递才依赖于主键,所以不符合 3NF。 2、什么是反模式 范式可以避免数据冗余,减少数据库的空间,减轻维护数据完整性的麻烦。 然而,通过数据库范式化设计,将导致数据库业务涉及的表变多

服务器软件性能优化

本秂侑毒 提交于 2019-11-25 21:40:28
本文介绍了服务器程序性能优化的一般性方法,以及部分常见服务器程序的性能优化步骤。服务器程序指的是接收客户端程序请求,执行对应操作,并将结果返回给客户端的程序,如Nginx、Tomcat、SQLite、Berkeley DB等。 1 优化方法 服务器性能优化是为了提高服务器性能而进行的一系列操作,本文关注的是程序(包括操作系统)层面的优化,因此不涉及诸如增加硬件、升级硬件或升级固件版本等方法。本文提到的性能优化,指的是通过调整程序参数或程序代码,提高程序性能的行为。本文主要关注工程方面的优化,不涉及算法优化等技术。 2 优化目标 本文关注于服务器程序,因此采用吞吐量(throughput)和时延(latency)作为性能度量指标。其他的性能度量指标,比如网络流量和耗电量等,不在考虑范围之内。 吞吐量是单位时间内服务器处理的请求数量平均值。时延是客户端从发送请求到接收应答所经历的时间平均值。在本文中,性能优化的目标是提高吞吐量,降低时延。 3 计算机模型 计算机分为处理器、存储器和通信线路。处理器负责执行指令,进行运算。存储器负责存储数据,数据以字节为单位。存储器分为顺序存储器和随机存储器。顺序存储器只能按顺序存取字节,随机存储器没有这样的限制。通信线路有两个端点,一个连接到处理器,另外一个连接到存储器或处理器。通信线路负责将数据在两个端点之间传递。通信线路上传递的数据也叫做消息