勇往直前的专栏

写给以后的自己

阿里不让 MySQL 多表 Join ?我偏要!

一、 问题提出:《阿里巴巴JAVA开发手册》里面写超过三张表禁止join,这是为什么? 二、问题分析:对这个结论,你是否有怀疑呢?也不知道是哪位先哲说的不要人云亦云,今天我设计sql,来验证这个结论。(实验没有从代码角度分析,目前达不到。可以把mysql当一个黑盒,使用角度来验证这个结论) 验证...

2019-08-15 19:54:51

阅读数 96

评论数 0

日均7亿交易量,如何设计高可用的MySQL架构?

“本文作者将给大家分享工行基于MySQL 构建分布式架构的转型之路! 作者:林承军,中国工商银行软件开发中心高级经理。51CTO技术栈整编 来自:微信公众号大数据技术标准推进委员会 将围绕如下几个方面展开: 工行 IT 架构转型中传统 OLTP 数据库架构面临的挑战和诉求。 ...

2019-07-04 16:36:12

阅读数 169

评论数 0

一条简单的 SQL 执行超过1000ms,纳尼?

作者:VipAugus https://juejin.im/post/5ce906a3e51d455a2f2201dc MySQL对我说“Too young, too naive!" 大概过程 在测试环境Docker容器中,在跨进程调用服务的时候,A应用通过Dubbo调用B应用...

2019-07-03 16:28:29

阅读数 34

评论数 0

两个小工具,MySQL死锁分析,新技能又Get!!!

数据库死锁,是最难调试与追踪的。 场景如下: 同一个表,事务内先插入一条记录,再更新这条记录,并发时会死锁。 并且能够复现。 可以通过什么工具模拟并发事务,查看信息,解决问题呢?这是今天要分享的内容。 一、前置准备 set session transaction isolat...

2019-07-03 13:15:23

阅读数 33

评论数 0

两类非常隐蔽的全表扫描,不能命中索引(一分钟系列)

《MySQL死锁分析的两个工具》中,举了一个强制类型转换导致死锁的例子,有朋友询问是不是类型转换都不能命中索引,花1分钟细说一下。 第一类:“列类型”与“where值类型”不符,不能命中索引,会导致全表扫描(full table scan)。 数据准备: create table t1 (...

2019-07-03 10:18:56

阅读数 82

评论数 0

一千个不用 Null 的理由,你还用?

来源:http://t.cn/EJl2n3X 港真,Null 貌似在哪里都是个头疼的问题,比如 Java 里让人头疼的 NullPointerException,为了避免猝不及防的空指针异常,千百年来程序猿们不得不在代码里小心翼翼的各种 if 判断,麻烦而又臃肿,为此 java8 引入了 Op...

2019-07-02 17:05:24

阅读数 45

评论数 0

一条数据的漫游奇遇记

阿里妹导读:数据库存储引擎是一个有历史的技术,经过数十年的发展,已经出现很多优秀成熟的产品。阿里巴巴 X-Engine 团队撰写的论文 "X-Engine: An Optimized Storage Engine for Large-scale E-Commerce Transactio...

2019-07-02 16:45:52

阅读数 108

评论数 0

一次 MySQL 千万级大表的优化过程

作者:赵客缦胡缨v吴钩霜雪明 来源:https://www.jianshu.com/p/336f682e4b91 概述 使用阿里云rds for MySQL数据库(就是MySQL5.6版本),有个用户上网记录表6个月的数据量近2000万,保留最近一年的数据量达到4000万,查询速度极慢,...

2019-06-30 15:07:03

阅读数 257

评论数 0

SELECT COUNT(*) 底层究竟干了啥么?

“SELECT COUNT( * ) FROM TABLE” 是个再常见不过的 SQL 需求了。在 MySQL 的使用规范中,我们一般使用事务引擎 InnoDB 作为(一般业务)表的存储引擎,在此前提下,COUNT( * )操作的时间复杂度为 O(N),其中 N 为表的行数。 而 MyISAM ...

2019-06-29 17:12:03

阅读数 51

评论数 0

MySQL全面优化,速度飞起来!

作者:惨绿少年 https://www.cnblogs.com/clsn/p/8214048.html 在进行MySQL的优化之前,必须要了解的就是MySQL的查询过程,很多查询优化工作实际上就是遵循一些原则,让MySQL的优化器能够按照预想的合理方式运行而已。 图-MySQL查询过程一、...

2019-06-27 09:56:17

阅读数 91

评论数 0

面试官:数据量很大,分页查询很慢,有什么优化方案?

来源:http://uee.me/aVSnD 当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询。对于数据库分页查询,也有很多种方法和优化的点。 下面简单说一下我知道的一些方法。 准备工作 为了对下面列举的一些优化...

2019-06-25 18:27:46

阅读数 78

评论数 0

技术经理:求求你,别再乱改数据库连接池的大小了!

作者:犬小哈 微信公众号:小哈学Java 上一篇:Redis企业实战的几个坑,你思考了吗? 一、前言 基本上来说,大部分项目都需要跟数据库做交互,那么,数据库连接池的大小设置成多大合适呢? 一些开发老鸟可能还会告诉你:没关系,尽量设置的大些,比如设置成 200,这样数据库性能会高些...

2019-06-23 10:09:33

阅读数 86

评论数 0

专业解决 MySQL 查询速度慢与性能差!

作者:唐立勇 https://segmentfault.com/a/1190000013672421 什么影响了数据库查询速度 1.1 影响数据库查询速度的四个因素 1.2 风险分析 QPS: QueriesPerSecond意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数...

2019-06-18 14:23:21

阅读数 105

评论数 0

为什么不推荐使用存储过程?

本文作者:菜v菜 | 观点整理:徐刘根 微信公众号:架构师修行之路(ID:jiagoushixiuxing) 上一篇: SpringBoot一个依赖搞定Session共享,没有比这更简单的方案了! 一、存储过程是什么? 存储过程(Stored Procedure)是在大型数据库系统中,...

2019-06-17 18:00:33

阅读数 228

评论数 0

for update引发的血案

公司的某些业务用到了数据库的悲观锁 for update,但有些同事没有把 for update 放在 Spring 事务中执行,在并发场景下发生了严重的线程阻塞问题,为了把这个问题吃透,秉承着老司机的职业素养,我决定要给同事们一个交代。 案发现场 最近公司的某些 Dubbo 服务之间的 RP...

2019-06-12 15:44:07

阅读数 66

评论数 0

好文推荐 | MySQL binlog应用场景与原理深度剖析

作者:田守枝 来自:田守枝的博客(公众号) 本文深入介绍Mysql Binlog的应用场景,以及如何与MQ、elasticsearch、redis等组件的保持数据最终一致。最后通过案例深入分析binlog中几乎所有event是如何产生的,作用是什么。 1 基于binlog的主从复制 My...

2019-06-10 16:31:48

阅读数 46

评论数 0

MySQL:硬盘在24 * 7工作中罢工了,我该怎么办?

虽然他们不承认, 但我还是这个系统的核心, 因为我保存着这个系统最最重要的东西:数据。 为了能让Tomcat他们访问, 我提供了几十个数据库连接——不能提供更多了,因为每个连接都要耗费我不少资源。 这些天Tomcat他们实在不像话,数据库读写的请求像大海的波涛一样汹涌澎湃,不断向我袭来。 9...

2019-06-06 15:39:35

阅读数 96

评论数 0

Redis 如何保持和 MySQL 数据一致

1.MySQL持久化数据,Redis只读数据 redis在启动之后,从数据库加载数据。 读请求: 不要求强一致性的读请求,走redis,要求强一致性的直接从mysql读取 写请求: 数据首先都写到数据库,之后更新redis(先写redis再写mysql,如果写入失败事务回滚会造成redi...

2019-06-06 13:47:07

阅读数 41

评论数 0

测试 MySQL 性能的几款工具

有一些有用的工具可以测试MySQL 和基于MySQL 的系统的性能。这里将演示如何利用这些工具进行测试。 mysqlslap   mysqlslap可以模拟服务器的负载,并输出计时信息。它包含在MySQL 5.1 的发行包中,应该在MySQL 4.1或者更新的版本中都可以使用。测试时可以执行并...

2019-06-05 16:08:59

阅读数 201

评论数 0

JDBC与mysql同为CST时区导致数据库时间和客户端时间差13或者14小时

摘要 线上排查问题时候碰到一个奇怪的问题,代码中读取一天的记录。代码中设置时间是从零点到夜里二十四点。但是读取出来的记录的开始是既然是从13点开始的。然后看了JDBC的源码发现主要原因是Mysql的CST时间与Java中CST时间是不一样的,下面给出问题的排查过程。 情景再现 1、代码中用的...

2019-06-04 21:31:10

阅读数 108

评论数 1

提示
确定要删除当前文章?
取消 删除