MySQL等数据库和大数据谁快?
自己原文公众号: https://mp.weixin.qq.com/s/wyGjHLP2lSD0WhdJq5j4Ow 很多人都说数据库处理不了,到大数据中去处理。似乎有一种错误的认识,好像大数据很快一样?今天本文以MySQL为例。Oracle PG更加不用说了。这个是MySQL的20多万count一下和查一条。可见全部count0.28秒,找一条更加不在话下应该是1ms的。 &
一次诡异的MySQL问题处理故事
自己原文公众号:https://mp.weixin.qq.com/s/JF7e8d13BzNPo3BmLunaTA 某天一个开发在网上找我说他的应用连不上数据库了。我问他什么现象,他反馈说tomcat那里显示报错,无法连接数据库(这是翻译成中文的)原文不贴了。我当时第一反应是去验证一下,让其他人去连一下数据库。让开发去telnet一下数据库。结果是开发说telnet不通,其他人说数据库可以连接。见
MySQL的压测
自己原文公众号:https://mp.weixin.qq.com/s/o7HjQwEVcbkWUkG6Hzlwsw 首先这个篇技术贴。前面先铺垫一下,最近苏伊士运河的各种新闻。我以前读中东战争时候不理解为什么有一次叫苏伊士运河战争,也不明白为什么要争夺西奈半岛和戈兰高地。这次算是彻底明白了。看到上面的图,苏伊士运河是咽喉要道,而半岛和高地直接控制这片区域。本文起因是系统的瓶颈是什么?一般来说瓶颈都
使用一个Oracle MySQL的理念
自己原文公众号:https://mp.weixin.qq.com/s/bbHGIoKpHBFyU8F0Bk1CHg 数据库分久必合合久必分。 20年前我们没什么人说架构,但是现在几乎是个人就说架构。为什么呢?因为从前是单机,而现在是多机。比如分库 或者分表。或者分布式。 这里再次说一下,分库分表不是分布式。分布式是一个库,分库分表是多
MySQL8的MGR
自己原文公众号:https://mp.weixin.qq.com/s/_kGO7ugXzEvmhXWnS2Otlg MGR这个已经出来好几年了。是5.7中后期推出的。对此我已经轻车熟路,5min足以搞好一套。现在大家都陆续使用8版本了,我在8中用以前轻车熟路的脚本搭建一次,发现根本搭不起来了。 分析各种问题以后决定采用8的新功能克隆数据库来搭建这样成功概率高
PAOXS协议
自己原文公众号:https://mp.weixin.qq.com/s/wsh1JwBv5uA3eDJzP4evBw 这几天深入学习一下。这个分布式系统的一个协议。分布式系统顾名思义就是要分。但是分布式又要保证在分的情况下还要一致。这个就难了,如果不考虑一致,随便。保持数据同步的一种方法是在多个节点上同时更新数据。如果我有3台机器做一个分布式系统。我只写第一个(一只羊薅羊毛)。那么另外两个把这些数据
mysql的升级
自己原文公众号:https://mp.weixin.qq.com/s/9rjjXtkSWhoAlimMu8bXXA 数据库总是要升级的。今天谈谈mysql的升级。主服务器配置添加以下参数server-id=1 Log-bin=mysql-bin gtid_mode=ONenforce-gtid-consistency=ON ----
没有列存的MySQL千万级分析也能支持
自己原文公众号:https://mp.weixin.qq.com/s/3mgeT93lP-PGCea0oZFDNA 如果要做分析大家第一想到的是大数据。还想到了Oracle MySQL PG不行。我听过不少人说,出报表去大数据啊。这个也不能说错,但是请问报表多大?如果就是几万条数据一个excel轻松搞定。为什么需要大数据? 分析做的好的都是列式数据库。行式数据
mysql 锁的慢日志
自己原文公众号:https://mp.weixin.qq.com/s/0_Sl8ok8PFu2FrjLe3THkg 在以前发表公众号基础上继续完善一下mysql的dml和缓存的关系。(5.7)第二张图也是以前的。一旦发生数据变化则没有缓存了,重新计算。那么翻过来也可以这样说,如果发生了重新计算,说明了数据一定有DML,也就是并发、或者非并发写。总之一定是写了。今天说点不一样的。上次我这都是在一个会
MySQL的死锁
自己原文公众号:https://mp.weixin.qq.com/s/Vo4Fo3mfmifnxWOl3WYx5w 死锁可大可小。有的深邃的问题是需要功力的,但是我们大多数人遇到的都是简单的。我今天这里谈谈简单的,因为我发现简单的上大家还有点不清楚。死锁一定要2个会话以上才行(含两个会话)。倒不一定要2个表或者多个表。一个表也能造成死锁。红色的代表步骤顺序。我这里演示是2个表A会话做id2的更新,
MySQL的SQL等价改写
自己原文公众号:https://mp.weixin.qq.com/s/3QNx3z1Q4TAMmrHC8qh3Rw 先上一下实验数据。再上一句SQL:SELECT *FROM h1, h3WHERE h1.id = h3.id &
database数据库的数据结构
自己原文公众号:https://mp.weixin.qq.com/s/x_p2-hTKoN4vMA1wrT88Gg 什么是程序?简单来说就是数据结构+算法。那么先有哪个?一般来说应该是现有结构,有了数据类型、结构才能运算。 最近看到一个设计居然号称是知名CRM产品,恕我孤陋寡闻,这样的也好意思叫产品。看那个表设计,字段大致是这样的。虽然我也是见过点市面的,但
MySQL Oracle 查询快慢和表的数据量多少有没有关系?
自己原文公众号:https://mp.weixin.qq.com/s/xieQP6SNryzKOE8R3Qy1Tg 先说一下观点。没有!时至今日还是依然有很多人认为数据库中数据量大了查询会慢。实在不好意思,这个观点是不对的。 我看到一句SQL select * from a where a.code like '%XXXX%' 执
MySQL锁分析
自己原文公众号:https://mp.weixin.qq.com/s/4JQwhyPOpt8QXZ_cjuDLug 简单的一个锁的说明。有时候其实不是什么证据都拿得到。但是可以推断,至少我们可以知道影响程度。注意下图(图3),这里看到锁了2个表(蓝色框)说明这一个事务有多个表,具体哪两个表我们不知道,只但是h1表示知道的,因为SQL在这里(trx_query的就是也是我上图中的被卡主的那句SQL)
MySQL为什么不要多表关联?
自己原文公众号:https://mp.weixin.qq.com/s/NYEhQXgPA299dlyYNUmrOw 我个人是反对的,我觉得2个表关联是正常的,单表最好。如果特殊最多3个表关联,3个以上是不对的(性能不好,建议优化)。即使在Oracle上,不管MYSQL还是PostgesSQL。 某个SQL执行了几分钟大致是这样的select * from 6
单机是最好的架构之三锁
自己原文公众号: https://mp.weixin.qq.com/s/WB83b6o_FoUtb-KJFBhoqQ 有时候发现开发其实分不清锁和死锁、以及怎么会造成这种。为了防止锁把架构变得复杂,但是其实没什么用。比如我账户有10元钱,我需要买一个5元的东西还要买一个6元的东西。结果是我最多只能买一样。这是数学问题而不是数据库问题。不少时候开发同学怕锁,结果设计了异步或者缓存再或者你想不到的操作
少即是多--数据架构之我见
自己原文公众号: https://mp.weixin.qq.com/s/2uMMrT5RO0vabXWtkDsxGw1870年9月6日,英国皇家海军铁甲舰“船长”号,在第一次航行中就遇到风暴而沉没,船上473人丧命。这艘军舰为什么这么弱不禁风呢?事故调查发现:首先,“船长”号以蒸汽机作为动力,又画蛇添足地安装了风帆桅杆;其次,工人们在造舰时唯恐用料不足,大多数零件的重量超出设计标准,导致完工的军舰
单机是最好的架构之一集中部署
自己原文公众号: https://mp.weixin.qq.com/s/dwgB4pwqhahTdRan_sKQWQ我以前一直说单机是最好的架构。这里的单机是指的一套数据库比如PG的集群,oracle的RAC、MySQL的MGR。我反对分库分表,不管别人怎么说我始终坚定这么认为。今天开始一个系列来说明。后续我打算有数据同步篇章、分库篇章、融合篇章等等等等 多
MySQL8升级遇到的各式各样问题
自己原文公众号: https://mp.weixin.qq.com/s/j2b9yO_9r5dYvXogBfqEwQ MySQL8已经出来2年多了,可以用了。尤其是大家在5.6和5.7上加字段加不上的,强烈推荐上MySQL8吧。 最近有人问我升级需要注意什么?官网能查到的就是说要换JDBC的包。然后官网给出了一个和5.7不一样的语法:mysql5.7group
database no sharding
自己原文公众号:https://mp.weixin.qq.com/s/jitiNxCazDUKTacRFrPreA 不止一次看到简历上写着从事过XX项目,分库分表。但凡这样写的有以下几种可能:1、胡说八道的2、看别人有抄的3、简单做过(反而最有问题,才多少数据量就分库分表?可见没有优化能力)4、真正场景需要(这种人应该在国内TOP20的公司不会找我面试) 随便国内找一个A