
数据库系统
Yisnow.
这个作者很懒,什么都没留下…
展开
-
数据库高并发的处理方法
1、增加缓存在web层和db层之间加一层缓存。减少数据库读取负担,提高数据读取速度。2、业务拆分分库:以电商平台为例,包含了用户、商品、评价、订单等几大模块,最简单的是在一个数据库中创建四张表。随着业务规模的增大,需要对业务进行拆分。每个表都使用单独的数据库进行存储,将原本对一个数据库的依赖拆分成对4个数据库同时承担压力,提高系统吞吐量。3、Mysql主从复制、读写分离当数据库的写压力增加,cache只能缓解数据库的读取压力。使用主从复制技术达到读写分离,以提高读写性能和读库的可扩展性。读写原创 2020-09-23 12:31:07 · 9456 阅读 · 0 评论 -
count(1)、count(*)、count(column)
有where条件的count,会根据扫码结果count一下所有的行数,其性能更依赖于where条件,所以仅仅针对没有where的情况进行说明;Myisam会把一个表的总行数记录下来,在执行count(*)时直接返回数量执行效率很高。InnoDB 因为增加了版本控制(MVCC)的原因,同时有多个事务访问数据并且有更新操作的时候,每个事务需要维护自己的可见性,那么每个事务查询到的行数也是不同的,所以不能缓存具体的行数,他每次都需要 count 一下所有的行数。在InnoDB下,COUNT(1)和COU原创 2020-09-17 12:08:24 · 408 阅读 · 0 评论 -
数据库连接池
什么是连接池数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个。连接池好处不使用连接池不使用数据库连接池的步骤:TCP建立连接的三次握手MySQL认证的三次握手真正的SQL执行MySQL的关闭TCP的四次握手关闭可以看到,为了执行一条SQL,却多了非常多我们不关心的网络交互。网络IO较多数据库的负载较高响应时间较长及QPS较低应用频繁的创建连接和关闭连接,导致临时对象较多,GC频繁在关闭连接后,会出现大量TIME_原创 2020-09-06 21:52:41 · 157 阅读 · 0 评论 -
数据库系统2:SQL数据查询
目录1、单关系查询1.1 投影操作1.2 重命名操作1.3 查询满足条件的元组1.4 集合操作1.5 分组聚集查询2、连接查询2.1 内连接2.2 外连接2.3 自然连接2.4 自连接3、嵌套查询4、视图1、单关系查询重点优先级:NOT>AND>OR涉及到空值的查询条件只能使用is/is not,不能使用=、!=、<>等。DISTINCT作用范围是所有目标属性,只能出现一次。ORDER BY只能用于对最终结果进行排序,不能对中间结果排序。ORDER BY只能出现在查原创 2020-08-10 15:25:56 · 550 阅读 · 0 评论 -
数据库系统1:关系数据模型
1、关系属性超键:能唯一标识一个元组的某一属性组。候选键:若一个超键的任意子集都不是超键,则该超键是候选键主属性:候选键的属性非键属性:不包含在任何候选键中的属性主键:从候选键中选出一个作为主键全键:包含关系的所有属性的候选键2、关系完整性约束2.1 实体完整性主属性不能取空主键必须唯一2.2 参照完整性规则若属性或属性组F是基本关系R的外键,则F在R中取空值F在R中非空则其必须在S中存在2.3 用户定义完整性根据用户的要求定义的完整性。3、关系代数原创 2020-08-10 13:33:37 · 330 阅读 · 0 评论