database的connect
自己原文公众号:https://mp.weixin.qq.com/s/xGmMgbTm9D5gsFE1jeTW4g 几天我被问到连接数的问题。一般来说开发都希望设置一个较大的连接数以确保程序不会出问题。 想起我以前经历公司,我有一次模拟并发场景,测试数据库压力。当时我4个会话不停压update和insert的场景。最后结论是每秒处理2000个事务(单机Oracle)没有问
一次数据库的优化经历
自己原文公众号: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一下。 &
消息队列中的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个。 我们
Oracle MYSQL PG体系
自己原文公众号:https://mp.weixin.qq.com/s/PQ_EG11oI1oE95XLlSJRrg 我以前有个比喻,如果一个IT系统比做人体。那么硬件是骨骼、网络是神经、数据是血液、数据库是心脏和大脑、应用程序是肌肉、中间件是内脏。DBA就是心脑血管医生。因为心脏是供血的,大脑是记忆的。而数据库就是干数据存储和读取,并且提供数据。那么我们就有必要了解心脑的构造。以前我说和关系型数据
exadata稳定不出问题才是最好的
自己原文公众号:https://mp.weixin.qq.com/s/t6t4Rm48sIVnwA6kU4XvFg 我以前写过扁鹊三兄弟的故事,其实做运维,尤其是做数据库的压力巨大。前天的那个说相当于心脑血管医生,你想想心脑停了着急不着急?其他的划了一条伤口能长好(机器坏了,再加一个),但是数据库宕机等于被斩首了。以前我老师说,一个库出问题了,每5分钟你身后多一个人。每半小时身后的官大一级。因为都
错误数据导致优化器不识别(高端优化手法用尽,结果尽然是这样)
自己原文公众号:https://mp.weixin.qq.com/s/Zt2_WCCi0V0Y82NzWKx7lQ有个人找到我说语句太慢。语句核心部分是这样的。我提炼一下。SELECT * FROM log a WHERE a.create_time >= to_date('2018-01-01', 'yyyy-mm-dd') AND a.create_tim
exadata与安迪比尔定理
自己原文公众号: https://mp.weixin.qq.com/s/c0krbIG9ysJFQqh1sDUVig前一天发一个朋友圈时候,德哥(PG的布道者)教了我一个名词--安迪比尔·。安迪是原英特尔公司 CEO 安迪·格鲁夫(Andy Grove)背后所指代的是所有硬件厂商。而比尔就是微软的创始人比尔·盖茨,背后所指代的是所有软件厂商。我和比尔盖茨同一天生日10月28日(世界男性日)。言归正
单机是最好的架构之二数据同步
自己原文公众号: https://mp.weixin.qq.com/s/cULhj5HFhYvjINZrDfjOoQ这篇我主要是针对分库分表、微服务和烟囱建设等说的。 我以前做公安行业的,人车管控。比如一辆车开过一个路口或者一个路段,被监控设备抓拍。那就是一条数据(含图片)。早期数据不多并发不高的时候我们图片是存数据库的。每秒100的并发写入问题不大。后期数
OGG-2
自己原文公众号: https://mp.weixin.qq.com/s/juh0XXjw-au9mI5sDAECuw 上次写了mysql到oracle,以及oracle到oracle的数据传输。毕竟都是关系型数据库。今天我尝试成功了从数据库到消息队列的传输。(其实要说厉害不是我个人的能力,只是个人把这个搞明白了) ogg首先连接数据库(oracle、mysql)
OGG到hadoop
自己原文公众号: https://mp.weixin.qq.com/s/iuQHNctnKphMSxUxHPIf5Q这几日在做数据库(oracle mysql)到CDH的实验。就是到所谓大数据。环境有限,都是用比较差的机器,勉强搞4、5台机器。其实4-5台机器根本玩不了大数据。就是搞个模型而已。当年cloudera(hadoop创始人创办的)公司卖也是最少要10台的,少于10台实在是丢不起这个人。
SQL改写
SQL改写 自己原文公众号: https://mp.weixin.qq.com/s/tkR0voTlCmfrcpV8lGh1HASELECT * FROM h left join P ON H.ID = P.IDleft join D ON H.NUM = D.NUM AND H.BOX_NUM = D.CODEM ON D.ID = M.ID&nb
SQL 汉诺塔
SQL 汉诺塔 自己原文公众号: https://mp.weixin.qq.com/s/0zh6zm_BoUnalAqvVD6qDg 上周我发布了一个SQL写的海盗分金子的(那个SQL不是我写的,我只是转述)。同样今天的这个也不是我写的。 背景是这样的一个游戏(这个游戏我是不会玩,但是见过),没想到我玩都不会玩的游戏,有人用SQL写了。 &nbs
Oracle的全文索引
Oracle的全文索引
Oracle 12C 一次多个新分区和把一个分区拆了
ALTER TABLE emp_part ADD PARTITION PARTITION p4 VALUES LESS THAN (35000), PARTITION p5 VALUES LESS THAN (40000);
Oracle 12c 监控DDL
SQL> show parameter ENABLE_DDL_LOGGINGNAME TYPE VALUE------------------------------------ ----------- ------------------------------enable_ddl_logging boolean FALSESQL> alter system set ENABLE_DDL_LOGGING=true;SQL> create table look2 as select * from look;...
Oracle 12C SQL-TOP
在刚才的基础上。insert into look values (2,'a',100);insert into look values (3,'a',100);insert into look values (4,'a',100);insert into look values (5,'a',100);insert into look values (6,'a',100);insert into look values (7,'a',100);insert into look values (8,'a',100);insert into look value...
Oracle 12C不可见索引自测
SQL> create table look (id number(4),name varchar2(10),money number(10) invisible);Table created.SQL> insert into look values (1,'a',100);insert into look values (1,'a',100) *ERROR at line 1:ORA-00913: too many valuesSQL> alter table look modify (mo...