首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

CA,给了数据库,给了机器,为啥也扩不了容?

随着业务越来越复杂,数据量越来越大,并发量越来越大,数据库的性能越来越低。好不容易找运维申请了两台机器,让DBA部署了几个实例,想把一些业务库拆分出来,却发现拆不出来,扩不了容,尴尬!...假如A业务线上线了一个新功能,不小心进行了全表扫描,导致数据库CPU100%,数据库实例性能下降,由于实例共用,通用业务,业务B和业务C都会受影响。...即某个业务线的数据库性能急剧下降导致所有业务都受影响,这种耦合,历史总是惊人的相似: 业务B的大boss在群里首先发飙:“技术都干啥了,怎么系统挂了” 业务B的rd一脸无辜:“业务A上线了,所以我们挂了...,也可以自己做业务服务调用RPC接口) 一次取得共性数据(调用通用的RPC接口) 两种方式相比: 之前的方式其实业务代码可能会更简单一些,因为它是将这个业务逻辑放在了SQL语句中,但是导致数据库耦合在了一起...后面这种方式就是业务的代码会更复杂,会变成多次访问,将原来在SQL中进行的逻辑计算变成业务代码中的逻辑计算,但是数据库解耦了 业务复杂,数据量大,并发老大,对扩展性要求更高的架构,一定是后者。

87270
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Tableau为啥就从了Salesforce?

    Salesforce花了157亿美金收购了Tableau是今天的一个爆炸性新闻,至少在我的朋友圈里是爆炸了,大家纷纷感慨Marc大叔真是太有钱了。...但在感叹Marc大叔有钱的时候还是不禁要去想一个问题,那就是Tableau怎么就从了Salesforce呢?我想可能有两方面原因,一个是Tableau想卖,另一个是Salesforce想买,呸!...Salesforce竟然花100多亿美金收购Tableau就说明Wave目前推广的并不是非常顺利,在下图的年报中没有看到Wave的影子,说明Wave所占的销售额比例非常少,这也从侧面验证了我的想法。...原因可能是Salesforce涉足大数据的时间已经晚了,这一领域的竞争一直非常激烈,IBM、惠普、SAS、微软、Tableau等巨头都已经占据了一定的市场份额,并抢占了用户心智,Wave想再进行挖角已经不是太容易了

    1.2K10

    @Autowired依赖注入为啥不推荐了

    这几天更新升级了一下java编码神器IDEA,升级完进行日常开发,可能是以前用的IDEA版本比较老旧,升级之后发现之前的日常写法有了个warning提醒。...Spring 在 CommonAnnotationBeanPostProcessor实现了对JSR-250的注解的处理,其中就包括@Resource。...如果指定了name,则从上下文中查找名称匹配的bean进行装配,找不到则抛出异常。 如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或是找到多个,都会抛出异常。...上面的内容都了解了之后我们接下来看为啥IDEA会有个warning提醒。IDEA 提示 Field injection is not recommended。...与此同时,从代码质量的角度来看,一个巨大的构造方法通常代表着出现了代码结构问题,这个类可能承担了过多的责任。

    1.5K21

    明明服务化了,为啥耦合更加严重了?

    场景还原 业务1,业务2,业务3,因为join导致数据库实例耦合在了一起。 为了实现通用数据库table-user的解耦,实施了服务化,将通用user数据的访问抽象出了服务。...不妨设,业务1来了一个新的个性化需求,这个需求本来实现在业务1自己的代码里是合理的,但工程师S想到,底层的通用服务里也有业务1的一小撮个性化代码,评估后,发现实现在底层新的需求改动的代码最小,时间最短,...- 业务1工程师S:“有个小需求,帮个忙呗” - 底层工程师B:“个性化实现在底层不合理” - 业务1工程师S:“反正都有switch case的代码了,再改一点也不麻烦,在我这边实现特别复杂,要xxoo...这么搞” - 底层工程师B:“确实很复杂,那我来吧” - … 遗留了不合理的代码,就会有第一次妥协,妥协了业务1,就会妥协业务2,随着时间的推移,底层服务越来越复杂: (1)业务1,业务2,业务3的个性化代码越来越多...3的项目逐步delay,但逐步都怪到了底层工程师的头上; 直到有一天,底层服务出了一个小bug,影响了业务1,业务2,业务3,历史总是惊人的相似: - 业务1的大boss在群里首先发飙:“技术都干啥了,

    54810

    Java22了,为啥还都用8?

    他写代码总是用新方式,别说用java16了,就java8的新特性,能用就用。...水平不错的开发自然对新特性不在话下,就算不懂,稍微搜一搜就明白了。但水平低的开发,看代码费力,万一理解有误,处理逻辑出错,不是得不偿失吗?...这种人就是拿五六千、有些七八千工资的,很多这种人是培训班培训几个月转行过来的,你源码里面充斥各种新特性,别说这些人看不看得懂,就算大概知道什么意思,但是误判了一些逻辑,不就死了?...这原因我就不分析了,懂的都懂。而且这些乱七八糟的系统,过个几年又因为各种原因重新做一套的多了去了。就某央企省级单位,一个it部门内部超过200个系统,你品品有多少外包的需求量。

    37400

    Mysql客户端上,时间为啥和本地差了整整13个小时,就离谱

    但是,这个mysql实例上,不止我们一个数据库,上面有几十个库,我这也不敢直接改数据库配置,万一有人专门这么配置的呢?...当然了,虽然多了些信息,我还是没明白为啥jconsole没连上。放弃。...但是,暂时也没深入去debug,我只是,排除了众多因素之后,我还是很奇怪,同事那个程序,为啥发送给mysql server的时间没问题,我这个就有问题,我于是,对比了一下双方的mysql-connector-java...比如这里就一个,mysql-connector-java升级到8.0后保存时间到数据库出现了时差 https://blog.csdn.net/valsong/article/details/102582582...具体的根本原因,我还没仔细看,为啥两个客户端版本有这个差异,不过,大概的排查过程,就是这样了。

    1.3K10

    为啥不能用uuid做MySQL的主键 ?

    在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一,单机递增),而是推荐连续自增的主键id,官方的推荐是auto_increment,...本篇博客的目录 mysql程序实例 使用uuid和自增id的索引结构对比 总结 一、mysql和程序实例 1.1.要说明这个问题,我们首先来建立三张表 分别是user_auto_key,user_uuid...并不是,自增id也会存在以下几点问题: ①别人一旦爬取你的数据库,就可以根据数据库的自增id获取到你的业务增长信息,很容易分析出你的经营情况 ②对于高并发的负载,innodb在按主键进行插入的时候会造成明显的锁争用...的机制不同在mysql的索引结构以及优缺点,深入的解释了为何uuid和随机不重复id在数据插入中的性能损耗,详细的解释了这个问题。...在实际的开发中还是根据mysql的官方推荐最好使用自增id,mysql博大精深,内部还有很多值得优化的点需要我们学习。

    3.9K20

    2021年了,为啥还有人在用LR?

    关于LR模型,之前其实写过不少文章了,剖析过原理,也做过公式推导。今天这篇文章主要来聊聊LR模型应用相关的一些理解。...不仅如此,就我了解到,即使是现在2021年了,国内依然有不少公司还在用LR。所以LR模型虽然简单,但是围绕着它的讨论点却很多,有非常多值得我们讨论和思考的地方。...而one-hot、sparse特征为主的特征集导致了随机森林等树模型很难拥有良好的效果。所以在这种场景下,使用LR并不是一个糟糕的选择。...没几年的时间,几乎已经看不到LR的踪迹了。 不过在一些要求强可解释性特殊场景下,LR模型依然没有完全淘汰。...因为很多时候有了对比才有感悟,再说了,只有工程师的水平高低,没有模型本身的高下之分。

    69210

    数据库连接池为啥要用 ThreadLocal?

    本人是在学threadlocal的时候,网上大部分人都是说数据库连接池是典型的用了threadloca的例子,然后我就又查数据库连接池和threadloca的关系。...连接池是缓存并托管数据库连接,主要是为了提高性能。 而ThreadLocal缓存连接,是为了把同一个数据库连接“分享”给同一个线程的不同调用方法。...使用数据库连接池,通常都是得到一个所谓的javax.sql.DataSource[接口]的实例对象,它里面包含了Connection,并且数据库连接池工具类(比如C3P0、JNDI、DBCP等),肯定是重新定义了...,在线程a还未操作完之前,线程b更新完了后,直接把连接给close了,线程a插了一半发现插不了了。。。...为了确保不同时间多个线程可能拿到的是同一个连接,那么此时threadlocal闪亮登场,就算我拿的是“同一个连接”,在引入了threadlocal后,每个线程之间都会创建独立的连接副本,将collection各自copy一份,这样就互相不干扰了。

    70820

    突然掉电,为啥MySQL也不会丢失数据?(收藏)

    MySQL采用buffer机制,避免每次读写进行磁盘IO,提升效率: 《缓冲池(buffer pool)》 《写缓冲(change buffer)》 《日志缓冲(log buffer)》 MySQL的buffer...一页的大小是16K,文件系统一页的大小是4K,也就是说,MySQL将buffer中一页数据刷入磁盘,要写4个文件系统里的页。...如上图所示,MySQL内page=1的页准备刷入磁盘,才刷了3个文件系统里的页,掉电了,则会出现:重启后,page=1的页,物理上对应磁盘上的1+2+3+4四个格,数据完整性被破坏。...自己实验了几十次,仍没能复现“页数据损坏”,在网上找了一个“页数据损坏”时,MySQL重启过程利用DWB修复页数据的图。...,启动过程中: (1)InnoDB检测到上一次为异常关闭; (2)尝试恢复ibd数据,失败; (3)从DWB中恢复写了一半的页; 能够通过DWB保证页数据的完整性,但毕竟DWB要写两次磁盘,会不会导致数据库性能急剧降低呢

    1.7K20

    Mysql InnoDB 为啥选择B+树索引 转

    前言 Mysql数据库中的常见索引有多种方式,例如Hash索引,B-树索引,B+树索引,但是为啥mysql中默认是采用B+树索引索引呢?下面对这三种索引学习总结一下。B+树到底有啥优势?...每个节点不再只是存储一个key了,可以存储多个key。     非叶子节点存储key,叶子节点存储key和数据。     叶子节点两两指针相互链接,顺序查询性能更高。...这个时候属于顺序读取,而不是磁盘寻道了,加快了速度。...如果键值不是唯一的,就需要先找到该键所在位置,然后再根据链表往后扫描,直到找到相应的数据;     如果是范围查询检索,这时候哈希索引就毫无用武之地了,因为原先是有序的键值,经过哈希算法后,有可能变成不连续的了...而且在数据库中基于范围的查询是非常频繁的,而B-树不支持这样的操作(或者说效率太低)。

    65830

    数字化成潮流,运维为啥也热了?

    不过这些早已是十年前的老黄历了。伴随着社会的进步,数字化的风靡,运维也升级到了智能运维,成为众多企业发展的重中之重。...在他看来,2015年期间,拥抱数字化的主要是互联网公司,而中国的互联网企业,本身技术应用走在了世界的前列,并且喜欢各种运维工具和开源产品,获得更强的IT掌控能力。...公开数据显示,2020年云智慧实现了高速增长,业务和团队增长约80%,营销及服务网络目前已覆盖到内地超过20个一、二线城市,连香港地区及新加坡等东南亚地带都已有所布局。...总体而言,由于市场环境的变化,使得数字化逐步深入到政企市场,IOT业务逐渐开展,使得运维行业得到极其利好,促使了云智慧这类运维初创公司有着蓬勃发展的良机。...如今的云智慧已是智能运维国家标准制定单位之一,且拥有80多项专利技术,形成了从ITOM到ITSM的智能运维产品系列,为金融、能源、运营商、物流、零售等数十个行业的上百家客户提供了相应的解决方案。

    39820
    领券