摘要: 前言 本文将结合实例demo,阐述30条有关于优化SQL的建议,多数是实际开发中总结出来的,希望对大家有帮助。 1、查询SQL尽量不要使用select *,而是select具体字段。 反例子: select * from employee; 正例子: select id,name from empl 阅读全文
posted @ 2020-07-11 23:05 经济人 阅读(85) 评论(0) 推荐(0) 编辑
摘要: ID是数据的唯一标识,传统的做法是利用UUID和数据库的自增ID,在互联网企业中,大部分公司使用的都是Mysql,并且因为需要事务支持,所以通常会使用Innodb存储引擎,UUID太长以及无序,所以并不适合在Innodb中来作为主键,自增ID比较合适,但是随着公司的业务发展,数据量将越来越大,需要对 阅读全文
posted @ 2020-07-11 23:03 经济人 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 在看如何优化 String 之前,我们先来了解一下 String 的特性,毕竟知己知彼,才能百战不殆。 字符串的特性 想要了解 String 的特性就必须从它的源码入手,如下所示: // 源码基于 JDK 1.8 public final class String implements java.i 阅读全文
posted @ 2020-07-11 23:00 经济人 阅读(343) 评论(0) 推荐(0) 编辑
摘要: 在网站创立初期,我们一般都使用单台机器对台提供集中式服务,但随着业务量越来越大,无论性能还是稳定性上都有了更大的挑战。这时候我们就会想到通过扩容的方式来提供更好的服务。我们一般会把多台机器组成一个集群对外提供服务。然而,我们的网站对外提供的访问入口都是一个的,比如www.taobao.com。那么当 阅读全文
posted @ 2020-07-11 22:59 经济人 阅读(504) 评论(0) 推荐(0) 编辑
摘要: P0 事故:余额多扣! 这是一个真实的生产事件,事件起因如下: 现有一个交易系统,每次产生交易都会更新相应账户的余额,出账扣减余额,入账增加余额。为了保证资金安全,余额发生扣减时,需要比较现有余额与扣减金额大小,若扣减金额大于现有余额,扣减余额不足,扣减失败。 账户表(省去其他字段)结构如下: CR 阅读全文
posted @ 2020-07-11 22:57 经济人 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间。那么你有没有正确的理解这个函数的用法呢? 思考下面这两个问题: 假设现在是 2008-4-7 12:00:00.000,如果我调用一下 Thread.Sleep(1000) ,在 2008-4-7 12:00:01.000 的时 阅读全文
posted @ 2020-07-11 22:56 经济人 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 1、LIMIT 语句 分页查询是最常用的场景之一,但也通常也是最容易出问题的地方。比如对于下面简单的语句,一般 DBA 想到的办法是在 type, name, create_time 字段上加组合索引。这样条件排序都能有效的利用到索引,性能迅速提升。 SELECT * FROM operation 阅读全文
posted @ 2020-07-11 22:46 经济人 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 前几天发了一篇文章,里面有一个关于事务失效的问题: 用 Spring 的 @Transactional 注解控制事务有哪些不生效的场景? 其中有个热心粉丝留言分享了下,我觉得总结得有点经验,给置顶了: 但是我觉得还是总结得不够全,今天我再总结一下,再延着这位粉丝的总结再补充完善一下,不用说,我肯定也 阅读全文
posted @ 2020-07-11 22:41 经济人 阅读(320) 评论(0) 推荐(0) 编辑