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,也就是并发、或者非并发写。总之一定是写了。今天说点不一样的。上次我这都是在一个会
OLTP的承载
自己原文公众号:https://mp.weixin.qq.com/s/FRcxNQGWjui2LCpOE8FaZA 前几天和以前同事吃饭。他们也是刚毕业后不久就跟着我,可以说是我带的。现在都在各自领域负责技术。我问其中一个他们现在业务规模,他们峰值有1000笔秒。(这里不方便说具体数字)你就算一天86400秒都是峰值那就9千万笔交易。实际一定没有9000万,但是千万级别一定有的。(一个Oracle
database的connect
自己原文公众号:https://mp.weixin.qq.com/s/xGmMgbTm9D5gsFE1jeTW4g 几天我被问到连接数的问题。一般来说开发都希望设置一个较大的连接数以确保程序不会出问题。 想起我以前经历公司,我有一次模拟并发场景,测试数据库压力。当时我4个会话不停压update和insert的场景。最后结论是每秒处理2000个事务(单机Oracle)没有问
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%' 执
一次数据库的优化经历
自己原文公众号:https://mp.weixin.qq.com/s/H5IEqcasnN4nCoipUauH1w 前几天有个学员问我个SQL能不能优化。SQL如下:SELECT S.CARD_NO FROM S WHERE S.DATE BETWEEN TO_DATE('20171002 00:00:00', 'yyyymmd
Oracle MySQL数据库索引层级
自己原文公众号:https://mp.weixin.qq.com/s/vkKV-mab6TVHrtDfq_AK5A 书接上回,我一直说数据量和查询速度没关系。请看这两个表(这里拿Oracle说事,是因为这个比较直观。MySQL PG DB2都是一个原理),其实说白了都是B+Tree的原理,只是不同数据库在这个基础上实现的优化算法不同。T1索引有2000万,C1索引有200万。他们对应的表如下。可以
开发规范是血泪教训
自己原文公众号:https://mp.weixin.qq.com/s/I8v4OyKOYLOYjA6y1WvMxA 我这里说的开发规范其实是数据库的设计和开发规范。因为应用程序主要是对数据库的操作,所以主要如何读写数据是尤为重要的。而在开发之前先想想设计,因为我多年的经验教训告诉我,设计很差的时候一切优化都苍白无力。比如一个支付场景,每次余额都要把每个用户的收入和支出去SUM一下。 &
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
消息队列的使用场景之RabbitMQ
自己原文公众号:https://mp.weixin.qq.com/s/gjZk3vXvrJIYghDjYDYzuw 安装Rabbitmq的步骤不详细说了。但是主要的要说说。第一步安装erlang,没有这个不行。而且这个erlang和rabbitmq的版本有对应关系。最重要一点网上很多帖子资料要去rabbitmq官网下载,会发现官网的那些页面都没有了。所以安装变成了一个问题。想当年谁在linux上安
消息队列的使用场景之kafka
自己原文公众号:https://mp.weixin.qq.com/s/21VyBQtwIlNORZmVjQvdhw kafka安装和使用其实比rabbitMQ要容易些,也舒服些。1、防火墙关闭2、java环境安装完毕3、3台主机名修改规划完毕每台机器mkdir -p /zookeeper/datatar -zxvf apache-zookeeper-3.7.0-bin.tar.gzmv
消息队列中的Oracle
自己原文公众号:https://mp.weixin.qq.com/s/Jcx2qDy8ZPxrFuoQPseZtQ 首先Oracle也支持消息队列,这个我们以后再说。我怕标题误导。前几天我写了RabbitMQ、KAFKA。其实还有RocketMQ、activeMQ,我就不再说了。其实那么多MQ也乱,如果能统一就好,最起码我不用学习那么多种。今天说一个有望将来一通消息队列的产品——puls
世界数据库史
自己原文公众号:https://mp.weixin.qq.com/s/uiYPRXNzTT-GyGsYCXq9iQ 看完了世界历史发现1977年时候甲骨文成立,中国那时候还没有自己的数据库,但是已经开始注视数据库了。下面看看数据库流行度排行榜。仅代表流行度。 时至今日看看国产数据库兵器谱排行榜,139个。 看看本月的世界兵器谱排行榜,373个。 我们
超出想想的Linux
自己原文公众号:https://mp.weixin.qq.com/s/U6tBJA0_FjFrOUiwpTuKBA 一般来说著名的linux系统基本上分两大类:1.RedHat系列:Redhat、Centos、Fedora等2.Debian系列:Debian、Ubuntu等 apt是Debian Linux发行版中的APT软件包管理工具。所有基于Debian的发行都使用这个包管理系统。d
Oracle MYSQL PG体系
自己原文公众号:https://mp.weixin.qq.com/s/PQ_EG11oI1oE95XLlSJRrg 我以前有个比喻,如果一个IT系统比做人体。那么硬件是骨骼、网络是神经、数据是血液、数据库是心脏和大脑、应用程序是肌肉、中间件是内脏。DBA就是心脑血管医生。因为心脏是供血的,大脑是记忆的。而数据库就是干数据存储和读取,并且提供数据。那么我们就有必要了解心脑的构造。以前我说和关系型数据