2023-09-13

JOIN 表使用建议[^1]

某些性能消耗非常大的 SQL 可以直接造成数据库主从长时间延迟、主从中断、甚至实例 CRASH 等。性能消耗过大的 SQL 本身执行时间长,其实也就是资源占用时间长,会造成集群并发能力低下。在业务流量突增(业务本身或网络抖动都可能导致)等情况下,容易造成 SQL 堆积、并发超过限制等,从而影响到业务正常运行。OceanBase 数据库没有关联表数的限制,复杂函数的使用目前只针对正则表达式相关函数,例如 regexp_substr 这类函数的执行性能差,容易影响业务。

一个业务,使用简单的 SQL 语句,使用数据库最简单的增、删、改、查功能,从而让数据库处于一种可预估,可扩展,可控的状态。我们来衡量一个业务 SQL 写的是否优秀,其关键点是这个业务的 SQL 是否在合理范围内足够的简单。这个合理的范围指的是随着业务及数据的增长,SQL 本身的性能消耗不大且不会有大的变化,不会占用过多的 CPU 或 IO 时间。比如一个根据主键查询的语句,一行数据与一千万行数据不会有太大的变化。业务可以很好的在此基础之上预估当前流量要增加比如 N 倍的情况下,数据库应就当如何扩容并能确保数据库可以支撑.但如果业务中复杂语句过多,性能消耗又大,数据库可能就只因为偶尔的或是前端的,或是网络的,可是数据库本身的波动导致 SQL 堆积、实例并发增长,业务受到影响。

复杂的 SQL 会让集群处于一种性能波动明显,并发能力低,业务可能不可控的状态

– OceanBase 数据库 》参考指南 》SQL 参考 》SQL 实践和建议 》SQL 语句示例


[^1]: JOIN 表使用建议

阅读全文 »

Druid driverClassName

Context: 数据库从 Oracle 迁移至 OceanBase(Oracle 租户模式),顺便将数据库配置从项目文件迁移至 Apollo,代码无改动。框架为定制化的 Spring。

OK,下面讲问题,,

不出意外,出意外了,,发版时,服务启动成功后,查询数据库报错:👇🏻

1
2
3
4
5
6
nested exception is org.apache.ibatis.exceptions.PersistenceException: 
### Error updating database. Cause: java.lang.NullPointerException
### The error may involve com.*.*.dao.*Mapper.updateByPrimaryKeySelective-Inline
### The error occurred while setting parameters
### SQL: update xxx
### Cause: java.lang.NullPointerException
阅读全文 »

2023-08-23

最近在 Review 同事代码时发现某个方法中加了事务 @Transactional 注解,方法体中的逻辑大概是这样:👇🏻

1
2
3
4
5
6
7
@Transactional
public void test(){
aMapper.deleteAll();
for(*;*;*){
aMapper.insert();
}
}

看上去挺正常的,但实际进入 deleteAll() 方法后发现 SQL 使用的是 TRUNCATE TABLE Statement,这就有意思了。这种情况事务能不能生效呢?如果不生效就悲催了,一旦 insert() 方法执行异常,整张表就相当于被清空了。。

查资料先,,

阅读全文 »

Object::wait 最佳实践

Context

Object::wait 的方法注释中有这样一句:

As in the one argument version, interrupts and spurious wakeups are possible, and this method should always be used in a loop:

1
2
3
4
5
synchronized (obj) {
while (<condition does not hold>)
obj.wait();
... // Perform action appropriate to condition
}

大意是 Object::wait 的最佳实践是放在循环体中使用,循环体之后是获取锁资源后真实执行的同步代码。

阅读全文 »

新冠疫情终于在2022年的最后一个月结束了,幸运的是家里的老人都平安过来了。只是奶奶的情况不是很好,阿兹海默,不认识我妈了,每顿吃的什么也不记得了,,一切都发生在短短的一年间。刚回家的时候,才知道爸妈在电话中提到的『没精神』是怎样一种状况,,眼皮耷拉着,像是困极了。还好,年后明显感觉精神多了,不再总是低头眯着,,静等春来!


  1. 你认为最完美的快乐是怎样的?
    快乐依然是短暂的,,已经不要求快乐了,只希望心里能干净一点,不要总是存着事儿。
  2. 你最希望拥有哪种才华?
    SOP(Standard Operating Procedure),大部分代码终究是重复的,『标准化』才是高价值的。今年『稚晖君』从华为离职创业了,祝好!
  3. 你最恐惧的是什么?
    妈妈变老,,心疼,没有一分钟为自己活
  4. 你目前的心境怎样?
    刚回答完上一个问题,泪目。两个老人,难啊。。今年不再抠头发了,头发也长出来了。下半年过的好难好焦虑,尤其是下半年跟进发动机账户下线的时候,每天在公司如坐针毡。
  5. 还在世的人中你最钦佩的是谁?
    稚晖君
  6. 你认为自己最伟大的成就是什么?
    别让家里人操心
  7. 你自己的哪个特点让你最觉得痛恨?
    还是不够自律..
  8. 你最喜欢的旅行是哪一次?
    回深圳前,跟周婶儿在庄里小聚,说起他们去大西北自驾的见闻,实在是羡慕的很,恨不得马上成行 也去上一趟。今年依然是因为疫情没怎么出去玩儿,上半年去了清远桃花谷,差点找不到回不了深圳。年底计划去桂林草莓音乐节,都安排好了,突发疫情,活动取消。没多久,疫情放开了。。
  9. 你最痛恨别人的什么特点?
    双标
  10. 你最珍惜的财产是什么?
    个人信用
  11. 你最奢侈的是什么?
    父母是如此爱我
  12. 你认为程度最浅的痛苦是什么?
    浅的都不痛苦,痛苦都不浅
  13. 你认为哪种美德是被过高的评估的?
    这个话题一两句说不清楚,,容易引战
  14. 你最喜欢的职业是什么?
    依然程序员(上边提到的『稚晖君』,奈斯!)
  15. 你对自己的外表哪一点不满意?
    右上眼皮可不可以不要内双,最近发现身上的痦子多了很多,脸上也是 好在都在侧面。。
  16. 你最后悔的事情是什么?
    大学混沌且不自知
  17. 还在世的人中你最鄙视的是谁?
    每个人应该都不想被别人鄙视的..
  18. 你最喜欢男性身上的什么品质?
    能为自己说过的话、做过的事负责
  19. 你使用过的最多的单词或者是词语是什么?
    今年没有什么特别经常挂在嘴边的,,每天下班前在微信上跟大象在微信上说的『回家』?
  20. 你最喜欢女性身上的什么品质?
    会照顾自己,也会照顾别人
  21. 你最伤痛的事是什么?
    远离家乡
  22. 你最看重朋友的什么特点?
    靠谱儿
  23. 你这一生中最爱的人或东西是什么?
    眼前人
  24. 你希望以什么样的方式死去?
    安乐死,或者一场猝不及防的意外
  25. 何时何地让你感觉到最快乐?
    跑单测的时候
  26. 如果你可以改变你的家庭一件事,那会是什么?
    大家身体健康就好,别的不奢求
  27. 如果你能选择的话,你希望让什么重现?
    小我:小时候,在床边,,妈妈剪完自己的指甲后,顺手拉过爸爸的手帮他剪指甲。
  28. 你的座右铭是什么?
    经历过就是财富

Extra..
2022年还有什么想说的??

阅读全文 »

🕯🕯🕯
今年家里又走了一个老人,奶奶也比之前更容易流泪了,,尤其是我要回深圳的时候


  1. 你认为最完美的快乐是怎样的?
    快乐终究是短暂的,,今年没怎么读书,内心也没有去年平静。。
  2. 你最希望拥有哪种才华?
    还是将问题抽象成代码的能力。今年『稚晖君』火了,因为自己做了一个机械臂,媒体称之为华为天才少年,真好
  3. 你最恐惧的是什么?
    变老,一眼可以望到头儿的那种
  4. 你目前的心境怎样?
    还是焦虑,,关于年龄,关于未来。今年的焦虑比去年来的更猛烈了一些,,又年长了一岁,好像又没有什么进步。头发都抠掉了,也深刻理解光哥的两根食指是怎么抠坏的了。
  5. 还在世的人中你最钦佩的是谁?
    不再是马斯克,是稚晖君
  6. 你认为自己最伟大的成就是什么?
    能照顾好自己就挺伟大的
  7. 你自己的哪个特点让你最觉得痛恨?
    还是不够自律..
  8. 你最喜欢的旅行是哪一次?
    2018年端午节的苏州之旅,,准确来说是喜欢苏州。今年因为疫情没怎么出去玩儿,去了广州张信哲的演唱会,本来还计划再去五条人的专场,票和酒店都定好了,结果突发疫情取消了。嗯,还去了盘尼西林的专场 [狗头]
  9. 你最痛恨别人的什么特点?
    双标,妥妥的双标!
  10. 你最珍惜的财产是什么?
    个人信用
  11. 你最奢侈的是什么?
    父母是如此爱我
  12. 你认为程度最浅的痛苦是什么?
    浅的都不痛苦,痛苦都不浅
  13. 你认为哪种美德是被过高的评估的?
    这个话题一两句说不清楚,,容易引战
  14. 你最喜欢的职业是什么?
    依然程序员(上边提到的『稚晖君』,奈斯!)
  15. 你对自己的外表哪一点不满意?
    右上眼皮可不可以不要内双
  16. 你最后悔的事情是什么?
    大学混沌且不自知
  17. 还在世的人中你最鄙视的是谁?
    每个人应该都不想被别人鄙视的..
  18. 你最喜欢男性身上的什么品质?
    能为自己说过的话、做过的事负责
  19. 你使用过的最多的单词或者是词语是什么?
    本年度是,,我不管,我就要(其实不是我说的)。
  20. 你最喜欢女性身上的什么品质?
    会照顾自己,也会照顾别人
  21. 你最伤痛的事是什么?
    形同陌路
  22. 你最看重朋友的什么特点?
    靠谱儿
  23. 你这一生中最爱的人或东西是什么?
    现在想想,,以前最爱的人是自己,现在不是了,持续付出爱的行为会让人成长。
  24. 你希望以什么样的方式死去?
    安乐死,或者一场猝不及防的意外
  25. 何时何地让你感觉到最快乐?
    代码一遍过!!!
  26. 如果你可以改变你的家庭一件事,那会是什么?
    早点让我知道电脑不光可以玩游戏..
    大家身体健康就好,别的真不奢求
  27. 如果你能选择的话,你希望让什么重现?
    小我:早上被我爸的录音机(装磁带的那个)叫醒,我该起床吃饭上学了。
    大我:太阳系重回三维宇宙。
  28. 你的座右铭是什么?
    经历过就是财富

Extra..
2021年还有什么想说的??

阅读全文 »

关于 Executors.newSingleThreadExecutor()

本以为只是一个简单的单线程线程池,与 Executors.newFixedThreadExecutor(1) 类似,但它的 DOC 注释中又显式提到:

Unlike the otherwise equivalent {@code newFixedThreadPool(1)} the returned executor is guaranteed not to be reconfigurable to use additional threads.

与类似功能的 newFixedThreadPool(1) 不一样,该方法返回的线程池执行器不可以被重新配置以使用额外的线程。

关键在于不可以重新配置。来看看它的构造器:

1
2
3
4
5
public static ExecutorService newSingleThreadExecutor() {
// FinalizableDelegatedExecutorService 装饰器
return new FinalizableDelegatedExecutorService
(new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>()));
}
阅读全文 »

事务隔离-高低水位

最近在复习丁奇大大MySQL实战45讲 - 08 | 事务到底是隔离的还是不隔离的?中关于 RC 隔离级别的实现时,以前好像读懂的地方又读不懂了。尤其是对下👇图:数据版本可见性规则 中高低水位『当前事务』的理解。

疑问

在可重复读隔离级别下,事务在启动的时候就『拍了个快照』。

按照可重复读的定义,一个事务启动的时候,能够看到所有已经提交的事务结果。但是之后,这个事务执行期间,其他事务的更新对它不可见。

阅读全文 »

🕯🕯🕯
向在这场疫情中去世的奉献者们致敬!


  1. 你认为最完美的快乐是怎样的?
    内心的平静,,上周日,在普宁美佳乐一层的大厅了,等大象-的时候,百无聊赖在按摩椅上休息了15分钟。整个人躺在上面,外面熙熙攘攘(音乐美食节,同时有四家在卖臭豆腐…),我看着天花板,完全放空了。想起了去年夏天去外伶仃岛,返程等船的时候,在树荫下的一块裸石上边,盘腿进入冥想状态。大抵就是这种『没有意义』的一刻钟吧。
  2. 你最希望拥有哪种才华?
    还是将问题抽象成代码的能力。今年突然发现了『稚晖君』,好生羡慕。
  3. 你最恐惧的是什么?
    变老..
  4. 你目前的心境怎样?
    有点焦虑,,关于年龄,关于未来。做总结的时候总是焦虑的,一年一年,,上周五的时候,在公司加班写代码,周婶儿发起视频,还有大松,光哥没接。没说几句,松突然提到『腿儿,你三十啦?!』,周婶儿说『没事儿,三十岁一事无成很正常,嫑伤心哈』,接着就是一阵坏笑,[扶额]。
  5. 还在世的人中你最钦佩的是谁?
    工作上还是硅谷钢铁侠,生活上是冯唐
  6. 你认为自己最伟大的成就是什么?
    (一声叹息..)
  7. 你自己的哪个特点让你最觉得痛恨?
    还是不够自律..
  8. 你最喜欢的旅行是哪一次?
    2018年端午节的苏州之旅,,准确来说是喜欢苏州。去年的双月湾和外伶仃岛也不错,如今想起的都是美好~
  9. 你最痛恨别人的什么特点?
    双标,妥妥双标!
  10. 你最珍惜的财产是什么?
    个人信用
  11. 你最奢侈的是什么?
    爸妈是如此爱我(我爸刚嘟噜玩说白养我了,看得见摸不着指不上[笑哭])
  12. 你认为程度最浅的痛苦是什么?
    浅的都不痛苦,痛苦都不浅
  13. 你认为哪种美德是被过高的评估的?
    这个话题一两句说不清楚,,容易引战
  14. 你最喜欢的职业是什么?
    依然程序员(上边提到的『稚晖君』,奈斯!)
  15. 你对自己的外表哪一点不满意?
    右上眼皮可不可以不要内双
  16. 你最后悔的事情是什么?
    大学混沌且不自知
  17. 还在世的人中你最鄙视的是谁?
    每个人应该都不想被别人鄙视的..
  18. 你最喜欢男性身上的什么品质?
    能为自己说过的话、做过的事负责
  19. 你使用过的最多的单词或者是词语是什么?
    本年度是,,**easy, man~**(想表达的是,Easy tiger.)
  20. 你最喜欢女性身上的什么品质?
    会照顾自己,也会照顾别人
  21. 你最伤痛的事是什么?
    形同陌路
  22. 你最看重朋友的什么特点?
    靠谱儿
  23. 你这一生中最爱的人或东西是什么?
    现在回答这个问题还是有些早,,现在希望大象-能够再胖一点。
  24. 你希望以什么样的方式死去?
    安乐死,或者一场猝不及防的意外
  25. 何时何地让你感觉到最快乐?
    Give Me Five!!!
  26. 如果你可以改变你的家庭一件事,那会是什么?
    早点让我知道电脑不光可以玩游戏..
    大家身体健康就好,别的不奢求
  27. 如果你能选择的话,你希望让什么重现?
    小我:早上被我爸的录音机(装磁带的那个)叫醒,我该起床吃饭上学了。
    大我:太阳系重回三维宇宙。
  28. 你的座右铭是什么?
    经历过就是财富

Extra..
2020年还有什么想说的??

阅读全文 »

你永远赚不到

超出你认知范围外的钱

除非你靠运气

但是靠运气赚到的钱

最好往往又会靠实力亏掉

阅读全文 »
0%