关键字: 水平切分,分库,分表,主从,集群第1章 引言随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的 互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。通过数据切分来提高网站性能,横向扩展数据层 已经成为架构研发人员首选的方式。水平切分数据库,可以降低单台机器的负载,同时最大限度的降低了了宕机造成的损失。通过负载均衡策略,有效的降低了单台 机器的访问负载,降低了宕机的可能性;通过集群方案,解决了数据库宕机
2024-11-08模块一 计算机基础 1.信息的特征 信息的特征包括:普遍性、载体依附性、共享性、传递性、价值性、时效性、真伪性。 (1)普遍性:信息是不以人的意志为转移的客观存在。信息是无处不在,无时不有的。 (2)载体依附性:信息必须依附一定的载体才能够表现出来,为人们所接收。 (3)价值性:信息本身是有价值的,能够满足人们的需要,一是精神上的满足,二是可以促进物质、能量的生产和使用。 (4)时效性:信息具有生命周期,其价值随着时间的推移而变化,因此信息的效用以信息价值为前提,信息需要不断更新。 (5)共享性
2024-11-08pt-online-schema-change是percona提供的一个mysql在线修改表结构(执行ddl)的工具 一、 原理 建立一个与需要操作的表相同表结构的空表给空表执行表结构修改在原表上增加delete/update/insert的after trigger(触发器比较重,算是其缺点之一)copy数据到新表,拷贝过程中通过原表上的触发器在原表进行的写操作都会更新到新建的临时表Rename 原表到old表中,在把临时表Rename为原表如果有参考该表的外键,根据alter-foreign
2024-11-08什么是缓存穿透?什么是缓存击穿?什么是缓存雪崩? 一个正常的访问流程: 1.缓存雪崩:redis缓存key同一时间大量失效,导致大量请求全部打到数据库,造成数据库挂掉。 如图: 2.redis一般都是集群部署,可以将热点key放到不同的节点上。让热点的缓存,平均的分布在不同的节点上。 3.不设置缓存失效时间,使其永远不失效。 4.去跑定时任务,让它定时刷新缓存,避免缓存失效。 2.缓存穿透:指缓存和数据库中都没有的数据,一般常见于黑客攻击。比如用没有的id=-1的数据,这种数据直接穿透缓存,
2024-11-08创建一个分页存储过程,测试调用的时候出现了这个错误: ... Error Code: 1414. OUT or INOUT argument 8 for routine graininfor.sp_page is not a variable or NEW pseudo-variable in BEFORE trigger 原因: 存储过程最后一个参数是输出参数。因此必须使用一个变量。 在MySQL Workbench中测试存储过程的时候变量不用定义直接使用即可。 修改下面的调用方式,错误解决
2024-11-08** 推荐用dbms_scheduler方式更好 (2012-11-19注) /* 查询: select job,broken,what,interval,t.* from user_jobs t; job job的唯一标识,自动生成的 broken 是否处于运行状态,N;运行;Y:停止 what 存储过程名称 next_date 初次执行时间 interval 执行周期 删除: begin dbms_job.remove(jobno); end; 根据what的内
2024-11-081.很多人认为count查询非常快,但是在加上筛选条件那就是未必的了! 测试:user表中4000w数据 (1).SELECT count(*) from user; 用时0.00s (2).SELECT count(*) from user where id>1000; 用时7秒 为什么统计全部速度快,不统计全部却慢了?因为mysql默认已经统计过表中的总记录了,所以查询非常快 2.优化count案例.假设需要查询数据中user表id大于1000的数据,如何快
2024-11-08概述 spring boot虽然帮我们把bean的依赖注入基本都默认配置好了;但有些时候,业务场景中一些对象实例不在spring生命周期中,但是对象中的属性又需要被spring依赖注入(属性在spring容器管理中); 比如一些servle的filter类,其中的一些属性又需要依赖一些spring的bean 我遇到的情况是这样的,实现FactoryBean接口获取到的自定义bean因为没有参与spring中bean的初始化,所以FactoryBean.getBean获取到的bean是没有经过sp
2024-11-08select count(1) from xxxx 这个sql执行特别慢,而且sql很简单 然后使用 select * from xxxx 很快就查询到了数据 同样是全表扫描,为什么count慢呢 原来这个表最近做过大量的数据迁移(删除数据) 变动后没有刷新统计信息 然后手动刷新一下统计信息 begin dbms_stats.gather_table_stats(ownname => ‘xxx’, tabname => ‘xxxx’, estimate_percent => 0.5, met
2024-11-08create or replace procedure p_blt_example(p_fm_dt date default sysdate - 1, p_to_dt date default sysdate) is /************************************************************ author :blt created
2024-11-08