![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
文章平均质量分 82
软件开发随心记
这个作者很懒,什么都没留下…
展开
-
事务传播行为Propagation
ClassA更新user1.年龄=11(事务,默认的Propagation.REQUIRED),ClassB更新user1.年龄=12(事务,测试不同的Propagation);ClassA和ClassB构成嵌套事务。通过2个测试程序,回到最开始的问题,项目里的那个方法不存在嵌套事务,因此指定为Propagation.REQUIRES_NEW其实是与Propagation.REQUIRED的效果一致,所以这里可删除掉Propagation.REQUIRES_NEW,避免歧义。原创 2024-04-01 02:00:00 · 1757 阅读 · 0 评论 -
解决一个Mysql的utf8编码导致的问题
解决一个Mysql的utf8编码导致的问题原创 2022-07-30 14:08:14 · 736 阅读 · 1 评论 -
MySQL慢查询及解决方案
MySQL慢查询与索引的关系,以及慢查询问题解决的方案原创 2022-07-10 17:22:28 · 17359 阅读 · 1 评论 -
MySQL无order by的排序规则因素
MySQL无order by时SELECT的排序规则因素原创 2022-06-05 20:31:26 · 2052 阅读 · 0 评论 -
@Transational踩坑
踩坑1:@Transational里代码太长@Transational最简单粗暴的使用方法就是在一个public方法上加上该注解,然后开始洋洋洒洒写上几百上千行代码,其中除了DB操作部分代码,也可能包含了接口/方法入参校验、外部系统接口调用、业务逻辑、数据计算、集合转换等逻辑。如此写,理论上是没什么大问题的,但绝大部分情况是到了最后部分才真正执行写DB的操作,此时才需用上@Transational,而在方法一开始就开启事务,很可能存在以下2种情况:程序还未执行到写DB逻辑,就return了,此时@T原创 2021-12-13 09:00:00 · 869 阅读 · 0 评论 -
死锁浅析
1.锁的分类首先记住一个基本点,锁是对表的索引的节点进行锁,而不是对某行锁,当走不了索引时候可能就会锁表了。1.1锁模式这里我主要分析锁的模式。记录锁记录锁是最简单的行锁, 仅仅锁住一行 。即使一个表没有索引,InnoDB也会隐式的创建一个索引,并使用这个索引实施记录锁。(record lock)间隙锁(Gap Locks)间隙锁是一种加在两个索引之间的锁,或者加在第一个索引之前,或最后一个索引之后的间隙。主要对一个区间而加锁。关键字(gap before rec)Next-Key Loc原创 2021-03-01 09:55:48 · 159 阅读 · 0 评论 -
使用MySQL进行地理坐标计算
随着移动设备的不断普及,APP程序已经成为各类型应用系统的关键流量入口,今年9月份发布的中国互联网络发展状况报告显示,我国手机网民规模已经达到9.32亿,占比99.2%。移动端程序设计已经是所有产品经理绕不开的话题。相比以往PC端程序,移动APP交互方式除传统用户输入外,还增加了额外的维度信息:地理坐标。例如,驾车时地图实时导航到达目的地的最佳行进路线;点外卖时系统自动根据用户位置搜索附近商家并进行推荐;办公打卡考勤时识别员工是否在执勤点附近。对于开发人员,未来或多或少会接触到地理空间计算场景,在这里简单原创 2020-10-18 22:36:52 · 3431 阅读 · 1 评论 -
浅谈MySQL的各种锁
提起MySQL的锁,大家都不会佰生,这是个老生常谈的话题。本文将对MySQL/innodb常见的锁做一个大致的分类,并结合SQL实例进行分析。#锁的模式S锁(共享锁)又称读锁,若记录被某事务加上了S锁,允许其它事务对其加S锁,但不允许其他事务再加X锁。加锁方式:select…lock in share modeX锁(排他锁)又称写锁,若记录被某事务加上了X锁,不允许其他事务再加S锁或者X锁加锁方式:select…for update简记:读读可以并行,读写/写写互斥IS(意向共享锁)和I原创 2020-08-02 22:22:21 · 887 阅读 · 0 评论 -
MySQL数据库及InnoDB存储引擎的日志文件
船头上迎面而来的海风特别有劲道但却总有种苦咸的味道,他睁着通红的眼睛,紧绷着嘴。尽管眼前一望无垠的海面平静如清晨的托雷维耶哈盐湖湖面,但他的心仍然翻涌着昨晚暴风雨中的激浪。这是离开陆地,在海上航行这么久以来最可怕的一晚。船帆在暴风中被撕开一道口子,桅杆眼看着就要被折断,他赶紧指示水手长去抢救。巨浪打在他身上,如果不是大副及时的帮助,他也许已经被冲得撞在舱门上粉身碎骨。恐怖吗?恐怖,这也许是他在海上离死亡最近的一次。但黄金、香料、珠宝和宝石的影子在他脑中浮现,对财富的欲望战胜了恐惧。也许是幸运女神的眷顾,原创 2020-07-26 23:17:54 · 487 阅读 · 1 评论 -
MySQL B+树索引难学难记?拥有这张思维导图,DBA都来赞你
军事领域自古以来就非常讲究速度与效率,所谓兵贵神速。当年楚汉相争,西楚霸王项羽与汉高祖刘邦的彭城之战,项羽凭借3万精锐骑兵大破刘邦率领的56万大军,这里面体现的就是骑兵的神速与高效,当然也少不了项羽对骑兵如神一般的指挥。用将军事领域重视速度与效率的理念来看MySQL的话,索引可以说是MySQL里面神速的骑兵。索引可以大大提升MySQL的检索速度,对于MySQL的高效运行起到非常重要的作用。...原创 2020-04-19 23:36:27 · 522 阅读 · 0 评论 -
一次诡异的死锁 —— 认识mysql间隙锁机制
文章目录情景模拟问题复现功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入相信所有学习过计算机操作系统课程的同学对死锁都...原创 2019-12-23 02:18:10 · 612 阅读 · 0 评论 -
Appache Griffin 扩展Mysql数据源
概述Apache Griffin定位为大数据的数据质量监控工具,支持批处理数据源hive、text文件、avro文件和实时数据源kafka,而一些以关系型数据库如mysql、oracle为存储的项目也同样需要可配置化的数据质量监控工具,所以扩展griffin的mysql数据源就可以为项目的数据质量监控提供多一种选择。代码结构从上一篇文章apache griffin 中已经介绍了griffin...原创 2019-06-30 16:12:50 · 1836 阅读 · 3 评论 -
使用MYSQL做为数据库项目中出现的异常: Communications link failure 二种场景的问题解析
在一次版本线上慢查询事件中,发现大量的Communications link failure 异常我将这种异常分为二类:1.低于120秒,莫名原因导致 mysql server端强杀2.超过120秒(公司设定mysql server端120秒强杀)项目采用的数据层分库分表的技术组件:当当网的ShardingJdbc问题场景复现及解决方案1.低于120秒,莫名原因导致 my...原创 2018-12-28 21:17:17 · 11999 阅读 · 0 评论 -
从Mysql源代码角度分析一句简单sql的查询过程
1. 前言使用mysql这么多年,以前一直只懂写sql,却不其中运行原理,直至最近抽时间看了一下mysql源代码,对其事务运行原理及sql解析优化有一些更深入的理解.本篇是讲述sql解析的开篇之作,希望透过最最简单的sql来让大家了解sql的查询解析过程,如果本文力图把一个简单sql的执行过程所涉及的方法及其相关值的变化详细讲清楚,如果有问题欢迎留言.2. 准备2.1 ...原创 2018-03-26 00:40:35 · 16999 阅读 · 3 评论 -
mysql优化个人理解
mysql优化个人理解MySQL逻辑架构 MySQL逻辑架构,来自:高性能MySQLmysql支持多种存储引擎,这里只讨论innodb。存储引擎负责和底层打交道,类似linux。中间的服务层通过API与存储引擎通信,接口隔离实现。MySQL查询过程 MySQL查询过程总结一下MySQL整个查询执行过程,总的来说分为6个步骤:客户端向MySQL服务器...转载 2018-05-21 00:10:27 · 2159 阅读 · 0 评论 -
小谈mysql存储引擎优化
小谈mysql存储引擎优化平时我们在写某个sql时,总会用Explain来查看一下执行计划,看看自己的sql是否和预期一样。执行计划分析也是我们常需要准备技能之一。无论哪种DBMS,决定查询执行计划的优化器是最复杂的部分。把握InnoDB引擎耗费很多时间处理查询的原因,对查询调优相当有用。一、查询执行过程mysq服务器中,查询的执行过程大致分为如下3个阶段: (1). 从用户接...原创 2018-07-16 02:24:39 · 1036 阅读 · 1 评论 -
分库分表的基本原理
分库分表的场景 首先提供一组mysql的性能数据:对于一个MySQL实例,CRUD上限经验值如下:(详细见:) Query:3w/s Insert:2w/s Update:8000/s Delete:8000/s 出处:https://blog.csdn.net/weixin_41545330/artic...原创 2018-08-05 15:29:04 · 9401 阅读 · 2 评论 -
数据库连接池原理
一、JDBC介绍1.jdbc的定义 JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。 2.jdbc的用途 简单地说,JDBC 可做三件事:...原创 2018-08-27 10:01:32 · 376 阅读 · 0 评论 -
日常工作中数据特征引发的慢查询
创建索引的目的是为了提升查询效率,但是创建了索引不等于查询效率提升。原创 2018-11-15 19:47:51 · 284 阅读 · 0 评论 -
财务系统库存重构现有量方案追忆
背景:小陈在老王和龙哥的要求下,要重构一个旧的财务库存系统。那么第一件事就是了解财务库存系统干啥的。财务库存系统,系统主要职能在于处理上游wms(仓储系统-物理仓储)推送的库存指令,对应处理,生成财务库存数据,作为结算依据。(简单理解,对比物理仓储,增加了财务信息,如公司,税,供应商,po-采购批次,成本计算等)上下游:wms(物理仓储) -> inv(财务库存) -> ap(...原创 2018-12-02 22:48:29 · 319 阅读 · 0 评论 -
仅使用关系型数据库就解决海量查询的解决方案
一。当前所面临的问题随着互联网的发展,数据量越来越大,既使分库分表后,单表数据量上千万都是很正常,很多业务表在未归档前都是要到几十亿以上,多个这样的业务表存在,到TB级非常正常。但业务的变化也是很快,后面的业务可能就会将分库分表的核心字段丢弃,那就会面临着,没有分库分表字段的存在,却要在几十亿的分库分表中查找,这些查找往往不是分库分表字段,甚至索引列都不是。采用大数据或搜索引擎,甚至一些自己优...原创 2018-12-28 21:18:00 · 876 阅读 · 0 评论 -
关于mysql事务&MVCC以及锁机制的总结
目录理解mysql事务 mvcc的原理 mysql锁机制(乐观锁、悲观锁、表锁、行锁、意向锁、GAP锁/间隙锁) 先思考个问题,锁跟事务有什么关系?为什么这篇文章要把事务、mvcc、锁这三个知识拼凑在一起?要回答这个问题,我觉得还是具体看下mvcc和锁的机制实现。一、数据库事务1.什么是事务数据库事务(Database Transaction) ,是指作为单个逻辑工作单元...原创 2018-12-23 22:40:48 · 2959 阅读 · 2 评论 -
电商财务结算系统重构实践
电商财务结算系统重构实践1.背景 1.1 业务背景 唯品会是全国第三大电商平台,连接全球几万家供应商,7x24为亿万会员提供优质的服务。唯品会的自营电商业务形态决定一方面要为广大的会员提供优质的产品服务,另外一方面又要为供应商提供优质,快捷,准确的仓储物流服务和财务服务。财务结算系统是电商后端业务中的核心功能,由它核算出在每一个结算周期内个供应商应该跟平台结算多少款项, 面对复杂的结算类型...原创 2018-03-30 17:43:59 · 13916 阅读 · 1 评论