13 robinson1988

尚未进行身份认证

我要认证

本人精通SQL,精通所有关系型数据库SQL调优,精通所有关系型数据库性能优化,精通所有关系型数据库架构,精通分库分表,熟悉大数据Hadoop,Hive,Spark,Flume,Kafka,Flink,熟悉各种ETL工具,熟悉Python,Java,C

等级
TA的排名 1k+

徒弟们

不知不觉已经收了300多个徒弟了,其中混得最好的徒弟,一年收入超过50w(他同时也是ocm,年龄和我差不多大,有自己的其他事业,属于天才类学生)绝大部分徒弟现在年薪都超过10w。有50多个徒弟年薪已经过20w了。恭喜恭喜。有些徒弟,心太急,想立马从10多w跳到20w+,还是建议先找个好点的公司混个背景先(比如甲骨文,惠普,IBM),这样跳槽涨幅更大。如果进不去这类公司,建议先混个team

2013-08-27 15:14:37

徒弟涨工资排行榜

这个是徒弟张工资了,和我聊天,

2014-05-06 22:25:53

通过一个例子详解 MySQL record lock(记录锁) 的加锁方式

本文基于MySQL8.0.19,下面通过一个例子讲解 MySQL record lock(记录锁) 的加锁方式SESSION1:mysql> SELECT VERSION();+-----------+| VERSION() |+-----------+| 8.0.19 |+-----------+1 row in set (0.01 sec)mysql> CREATE TABLE t(id INT UNSIGNED PRIMARY KEY ,NAME VARCH

2020-10-11 21:30:36

都2020年了还能看见奇葩的SQL写法

2020-08-17 13:08:51

A.COLUMN LIKE B.COLUMN% 关联的优化方法

现在有个SQL要跑10秒:SQL> select a0.id, 2 a1.room_no, 3 a1.user_name, 4 a1.user_no, 5 row_number() over(partition by a0.id order by a1.room_enter_time desc) as fn 6 from vid_attachment a0 7 inner join vid_room

2020-06-13 22:16:07

MySQL8.0.19 MGR MySQL router MySQL connector failover 组合实现高可用

在MySQL5.7之前,本人一直是很排斥MySQL的,因为MySQL的半同步并不能100%保证主从数据一致性,MHA架构也不能100%保证主从数据一致性,一个连数据一致性都不能保证的数据库我肯定是不会像学Oracle那样化大量时间去学习。MySQL5.7 MGR技术的出现,MySQL8.0对分析函数的支持,对内连接等值访问HASH JOIN 算法的支持等等新特征,让我看到MySQL要脱胎换骨了,这也终于让我有兴趣学习MySQL了,今天先配置MySQL MGR 3节点单主模式的集群,然后利用MySQL rou

2020-06-05 00:40:08

利用Python多进程并行执行加快MySQL批量UPDATE执行速度

现在有个表tmysql> desc t;+----------------+--------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+----------------+--------------+------+-----+---------+----------------+| owner

2020-05-29 15:58:16

利用Python解析MySQL BINLOG从而回滚UPDATE和DELETE误操作

MySQL没有Oracle的闪回(flashback)功能,如果不小心执行了UPDATE或者DELETE误操作,想要回滚相比Oracle还是挺麻烦的可以利用mysqlbinlog工具解析binlog,从而拼接出UPDATE和DELETE的回滚语句,人工拼接比较麻烦,所以利用Python来拼接import ioimport pymysqldef processUPDATE(db_name,table_name): conn = pymysql.connect("192.168.56.10",

2020-05-24 23:38:09

Oracle中TX锁(行锁)监控,抓TX锁的源头

DBA小伙子,看到这个文章是不是很开心,解决了你一个大麻烦session 1: update emp_bak set ename='沙雕' where empno=7369;session 2: update emp_bak set ename='大长腿' where empno=7369;session 3: update emp_bak set ename='矮丑穷' where empno=7369;运行下面脚本可以抓到哪个SID,哪个SQL_ID,跑的SQL_TEXT锁住了哪个SID

2020-05-18 23:51:09

利用Python监控MySQL当前跑的TOP SESSION

利用ps命令抓出MySQL PID,根据PID再监控每个线程CPU使用率以及跑的SQL语句import pymysqlimport osimport timeos.environ['NLS_LANG']='SIMPLIFIED CHINESE_CHINA.UTF8'command="ps -ef | grep 3306 | grep -v grep | awk '{print $2}'"with os.popen(command, "r") as pid: pid = str(int(pi

2020-05-18 17:16:33

利用Python监控Oracle当前跑的TOP SESSION

因为要使用Python经常连接到Oracle获取SQL_ID以及SQL语句,会话频繁连接,断开会引起Oracle服务器性能严重下降所以利用Python监控Oracle的时候,要先在Oracle配置连接池(DRCP)begin dbms_connection_pool.configure_pool(pool_name => 'sys_default_connection_pool', mi

2020-05-17 12:44:15

利用Python发送QQ邮件

发送QQ邮件之前,要先开启QQ邮箱IMAP/SMTP服务,并且记住授权码import smtplibfrom email.mime.text import MIMETextmail_sender='你的qq号@qq.com' #发送方邮箱mail_code='你的授权码' #授权码mail_receivers='你的qq号@qq.com' #邮件接收方subject='测试Python发邮件' #主题content='测试Pyt

2020-05-14 22:58:36

利用Python将EXCEL,CSV,TSV导入Oracle或者MySQL

虽然可以用Kettle等ETL工具将EXCEL,CSV,TSV等格式的文件导入Oracle或者MySQL,但是还是觉得写点代码心里踏实些import cx_Oracleimport pymysqlimport pandasimport osimport timeos.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'target_db_type='MySQL'

2020-05-14 01:32:18

SQL改写的书终于出版了

众所周知,SQL 优化很多 SQL 都是写法上有问题,目前市面上没有这种书籍,为了造福广大Oracle使用者教主和我特意编写 SQL 改写 优化的书籍 ,大家可以到这里购买http://product.china-pub.com/4455744#mlSQL水平比较菜的兄弟们也可以购买运维同志们也可以购买

2014-11-28 23:25:08

SQL优化新书《SQL优化核心思想》终于出版了

耗时三年,SQL优化大作终于出版了,有想提升SQL优化水平的同学,可以买本看看本书共10章内容:第一章介绍SQL优化的基础知识;第二章讲解统计信息相关内容;第三章讲解执行计划,快速找出SQL性能瓶颈;第四章讲解常见的访问路径;第五章讲解表的各种连接方式;第六章介绍单表访问以及索引扫描的成本计算,引出优化思想。第七章讲解查询变换;第八章讲解优化技巧;第九章分享经典案例;第十章介绍全自动SQL审核...

2018-04-09 20:27:53

利用Python将数据库查询结果导出为EXCEL,CSV,TSV格式(性能比Kettle高接近1倍)

虽然可以用Kettle等ETL工具将数据库查询结果导出为CSV格式,但是感觉很麻烦,我们还是用Python来做吧import cx_Oracle #导入连接Oracle模块import os #导入os模块import csv #

2020-05-10 21:20:29

在Oracle和MySQL中利用SQL查询出今年日历

Oracle写法:select case when rank() over(partition by month order by week) = 1 then month else ' ' end month, max(一) 一, max(二) 二, max(三) 三, max(四) 四, max(五) 五, max(六) 六,

2020-05-10 01:32:32

MySQL中的树形查询

树形查询本质就是递归算法(自己调用自己),Oracle很早就支持了树形查询MySQL中可以使用 WITH RECURSIVE 来实现树形查询比如在Oracle中scott账户下,找出员工编号为7369所有的上级:SQL> select empno, ename, job, mgr, level 2 from emp 3 start with empno = 7369 4 connect by empno = prior mgr; EMPNO ENAME

2020-05-09 00:00:24

MySQL根据主键切割大事务(变相ROWID切片)

不管是Oracle,MySQL,还是PostGre SQL,跑大事务都会严重影响数据库性能在Oracle里面可以利用rowid切片的方式处理大事务,如果不清楚什么是rowid切片,可以买一本《SQL优化核心思想》看看MySQL没有Oracle的区,块,段这些概念,所以也就不能使用rowid切片的方式处理大事务MySQL中表一般都是存在innodb引擎中的,使用innodb引擎每个表都必须要设置主键(当然了你也可以不设置主键,你屌)MySQL中主键一般都是自增(auto_increment)的

2020-05-08 22:17:20

获取MySQL中某个数据库下所有表建表语句的DDL

本脚本可以获取MySQL中某个数据库下所有表建表语句的DDL注意:本脚本需在MySQL8.0以上版本运行注意:本脚本不获取VIEW创建语句注意:本脚本没有处理主键,外键等约束注意:本脚本只处理非分区表,分区表请自己改写脚本注意:如果你做数据迁移,想把MySQL数据库迁移到其他数据库,自己改写脚本WITH tab AS (SELECT table_name FROM informa...

2020-05-07 10:51:07

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。