作者花花和Java来源花花和Java(ID:gh02ed7983d1ec)1MySQL事务特性是什么怎样实现ACID特性MySQL事务指:一组操作要么同时成功要同时失败。所以事务四大特性:一致性、原子性、持久性、隔离性。事务原子性:MySQL中含有undolog日志又叫做回滚日志。用于记录数据变化的逻辑。当系统发送错误或者rollback时候,根据undolog更改为原来未修改的数据。持久性:在数据库中数据存储在磁盘中,如果每次读写都操作磁盘效率很低。InnoDB中...
2022-04-22 21:48:10 5682浏览 0点赞 0回复 0收藏
作者花花和Java来源花花和Java(ID:gh02ed7983d1ec)一Spring1SpringIOC,AOP你的理解讲一下IOC,也经常被称为IOC容器,将之前手动new对象和手动对对象引用赋值,现在完全交给spring工厂。降低组件之间的耦合性。AOP,面向切面编程。是对面向对象的一种补充,将一些重复性代码、业务无关的代码抽取,提高代理利用率,减少对业务代码的侵入。2Spring中Bean的生命周期(创建流程)是什么在容器进行初始化时候,首先将definetion转化...
2022-04-22 21:40:57 5535浏览 0点赞 0回复 0收藏
作者花花和Java来源花花和Java(ID:gh02ed7983d1ec)一12306深度优化整体架构在节假日和春节时候,火车票提前预售。在预售的点会有大量人们抢购车票。由于高并发,导致服务瘫痪。1解决方案内存计算余票异步交易系统(削峰方案)数据库进行高可用搭建(读写分离)削峰解决方案1.削峰方案:对于瞬时流量我们最先想到的是中间件进行削峰,把直接调用转化为间接异步推送。中间队列在一瞬间接受流量锋,在另外一端平滑的将消息推送。2.答题...
2022-04-22 21:37:00 7636浏览 0点赞 0回复 0收藏
作者花花和Java来源花花和Java(ID:gh02ed7983d1ec)一存储引擎体系1MySQL体系架构上图描述ConnectionPool:连接池组件ManagementServices&Utilities:管理服务和工具组件SQLInterface:SQL接口组件Parser:查询分析器组件Optimizer:优化器组件Caches&Buffers:缓冲池组件PluggableStorageEngines:存储引擎FileSystem:文件系统1.连接层最上层是一些客户端和链接服务,包含本地sock通信和大多数基于客户端服务端工具实现的类似于TCPIP...
2022-04-22 21:28:49 5297浏览 0点赞 0回复 0收藏
作者花花和Java来源花花和Java(ID:gh02ed7983d1ec)索引使用概述1.定义索引帮助MySQL高效获取数据的数据结构(按照一定规则)。2.定义解释MySQL在存储数据之外,数据库系统还维护者满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。3.优缺点优点提高数据检索效率,降低数据库IO成本。通过索引对数据进行排序降低数据排序成本,降低CPU消耗...
2022-04-22 21:12:16 1.1w浏览 0点赞 0回复 0收藏
作者花花和Java来源花花和Java(ID:gh02ed7983d1ec)我们干开发面试工作的时候,发现对数据库的面试比重很大。说明对数据库的知识掌握对我们程序员越来越重要了。接下来这篇文章我们来看看如何分析我们的sql执行效率。首先找到执行慢的sql,然后对执行慢的SQL进行分析。一准备数据在分析之前是不是有这样的困惑,我的数据量这么少。我如何分析SQL执行效率。不要慌,我们已准备了一千万条数据。接下来看看如何将这一千万条数据快...
2022-04-22 20:48:25 1.7w浏览 0点赞 0回复 0收藏
作者hinking曹来源hinking曹(ID:gh99a433ce8e3e)前言在当下微服务架构比较火热时,新一代微服务解决方案SpringCloudAlibaba提供的开源分布式事务解决框架Seata无疑成为了我们在解决分布式事务时的首要之选,前面两篇文章分别介绍了常见的分布式解决方案和成熟的框架以及关于Seata概念的入门介绍,没有过分布式事务处理的小伙伴可以先有个大致的入门了解:SpringCloudAlibaba微服务架构(十一)常见分布式事务解决方案及理论基础...
2022-04-22 20:19:25 9687浏览 0点赞 0回复 0收藏
作者hinking曹来源hinking曹(ID:gh99a433ce8e3e)前言继上一篇文章分布式事务解决方案及理论基础入门介绍了分布式解决方案相关概念之后,本篇给大家带来SpringCloudAlibaba开源的一款分布式解决方案框架Seata,本篇为Seata组件的相关概念介绍,如果想使用Seata实战解决分布式事务难题还请看下一篇文章。一、什么是微服务架构“微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间相互协调、互相配合,...
2022-04-22 20:07:59 6933浏览 0点赞 0回复 0收藏
作者hinking曹来源hinking曹(ID:gh99a433ce8e3e)一、前言在搭建SpringCloud项目环境架构的时候,需要选择SpringBoot和SpringCloud进行兼容的版本号,因此对于选择SpringBoot版本与SpringCloud版本的对应关系很重要,如果版本关系不对应,常见的会遇见项目启动不起来,怪异的则会是你的项目出现一些诡异的问题,查资料也不好查。下面就收集一下SpringBoot与SpringCloud版本之间的对应关系,在搭建项目框架或者学习时按照对应的...
2022-04-22 19:47:44 1.4w浏览 0点赞 0回复 0收藏
作者hinking曹来源hinking曹(ID:gh99a433ce8e3e)一、背景随着互联网的快速蔓延,各种传统项目(单体应用的架构)已经不能够满足当前各种复杂的需求场景,都逐渐向分布式服务、微服务做转换,而如今分布式、微服务架构已经普遍存在互联网公司的项目中,像大型电商网站等几乎都是分布式、微服务架构的。因此分布式和微服务架构就显得尤为重要了,这也是对一个架构师考验的提升。分布式和微服务系统的最大难点,就是各个节点之间的...
2022-04-22 19:34:22 6498浏览 0点赞 0回复 0收藏
作者hejianhui来源一角钱技术(ID:orgyijiaoqian)一、什么是雪崩效应业务场景,高并发调用正常情况下,微服务ABCD都是正常的。随着时间推移,在某一个时间点微服务A突然挂了,此时的微服务B还在疯狂的调用微服务A,由于A已经挂了,所以B调用A必须等待服务调用超时。而我们知道每次BA的适合B都会去创建线程(而线程由计算机的资源,比如cpu、内存等)。由于是高并发场景,B就会阻塞大量的线程。那边B所在的机器就会去创建线程,但...
2022-04-22 18:47:17 7010浏览 0点赞 0回复 0收藏
作者hejianhui来源一角钱技术(ID:orgyijiaoqian)前言Redis6主要的变化有:SSL、ACLs、RESP3、客户端缓存、线程IO、Redisbenchmark中的集群支持和改进的Rediscli集群支持,以及Redis集群代理。1.多线程IOredis6.0提供了多线程的支持,redis6以前的版本,严格来说也是多线程,只不过执行用户命令的请求时单线程模型,还有一些线程用来执行后台任务,比如unlink删除大key,rdb持久化等。redis6.0提供了多线程的读写IO,但是最终执...
2022-04-22 18:05:08 6726浏览 0点赞 0回复 0收藏
作者hejianhui来源一角钱技术(ID:orgyijiaoqian)五种常用数据结构String结构字符串常用操作SETkeyvalue存入字符串键值对MSETkeyvalue[keyvalue...]批量存储字符串键值对SETNXkeyvalue存入一个不存在的字符串键值对GETkey获取一个字符串键值MGETkey[key...]批量获取字符串键值DELkey[key...]删除一个键EXPIREkeyseconds设置一个键的过期时间(秒)原子加减INCRkey将key中储存的数字值加1DECRkey将key中储存的数字值减1INCRBYkeyin...
2022-04-22 17:56:54 7059浏览 0点赞 0回复 0收藏
作者hejianhui来源一角钱技术(ID:orgyijiaoqian)前言在这里我们先回忆一下普通链表的时间复杂度,可以看到除了lookup操作是o(n)的,其他操作都是o(1)的时间复杂度。也就是说你需要随机访问里面的任何一个元素的话,它的时间复杂度平均值是o(n)的,这也就是链表它的问题所在。从这里可以看到并没有所谓完美的一种数据结构,如果完美那就不需要Array或者LInkedList这两个数据结构并存了,就直接使用最牛逼的数据结构即可。所以相...
2022-04-22 17:40:50 7643浏览 0点赞 0回复 0收藏
作者hejianhui来源一角钱技术(ID:orgyijiaoqian)前言前面我们讲了MySQL数据库底层的数据结构与算法、MySQL性能优化篇一些内容。以及上篇讲了MySQL的行锁与事务隔离级别。本篇再重点来讲讲锁类型和加锁原理。首先对mysql锁进行划分:按照锁的粒度划分:行锁、表锁、页锁按照锁的使用方式划分:共享锁、排它锁(悲观锁的一种实现)还有两种思想上的锁:悲观锁、乐观锁。InnoDB中有几种行级锁类型:RecordLock、GapLock、NextkeyLoc...
2022-04-22 16:59:09 1.7w浏览 0点赞 0回复 0收藏
作者hejianhui来源一角钱技术(ID:orgyijiaoqian)前言MySQL索引底层数据结构与算法MySQL性能优化原理前篇MySQL性能优化实践篇1上一篇《MySQL性能优化实践篇1》我们讲了数据库表设计的一些原则,Explain工具的介绍、SQL语句优化索引的最佳实践,本篇继续来聊聊MySQL如何选择合适的索引。MySQLTrace工具MySQL最终是否选择走索引或者一张表涉及多个索引,最终是如何选择索引,可以使用trace工具来一查究竟,开启trace工具会影响MyS...
2022-04-22 16:40:11 6363浏览 0点赞 0回复 0收藏
作者hejianhui来源一角钱技术(ID:orgyijiaoqian)前言MySQL索引底层数据结构与算法MySQL性能优化原理前篇前两篇说完了索引底层数据结构、性能优化原理的基本概念。本篇将讲讲具体实践。分两篇来讲,这是实践的第一篇。对于一个以数据为中心的应用,数据库的好坏直接影响到程序的性能,因此数据库性能至关重要。一般来说,要保证数据库的效率,要做好以下四个方面的工作:数据库表设计SQL语句优化数据库参数配置恰当的硬件资源和...
2022-04-22 16:09:59 5619浏览 0点赞 0回复 0收藏
作者hejianhui来源一角钱技术(ID:orgyijiaoqian)前言性能优化(Optimize)指的是在保证系统正确性的前提下,能够更快速响应请求的一种手段。而且有些性能问题,比如慢查询等,如果积累到一定的程度或者是遇到急速上升的并发请求之后,会导致严重的后果,轻则造成服务繁忙,重则导致应用不可用。它对我们来说就像一颗即将被引爆的定时炸弹一样,时刻威胁着我们。因此在上线项目之前需要严格的把关,以确保MySQL能够以最优的状态进...
2022-04-22 15:19:24 5694浏览 0点赞 0回复 0收藏
作者hejianhui来源一角钱技术(ID:orgyijiaoqian)前言在MySQL官方提到,改善操作性能的最佳方法SELECT在查询中测试的一个或多个列上创建索引。索引条目的作用类似于指向表行的指针,从而使查询可以快速确定哪些行与WHERE子句中的条件匹配,并检索这些行的其他列值。所有MySQL数据类型都可以建立索引。尽管可能会为查询中使用的每个可能的列创建索引,但不必要的索引会浪费空间和时间,使MySQL难以确定要使用的索引。索引还会增...
2022-04-22 15:12:52 9350浏览 0点赞 0回复 0收藏
大家好,我是moon。redis作为我们最常用的内存数据库,很多地方你都能够发现它的身影,比如说登录信息的存储,分布式锁的使用,其经常被我们当做缓存去使用。可是,用了这么久的reids,你懂它吗1.什么是redis它能做什么redis:redis即RemoteDictionaryServer,用中文翻译过来可以理解为远程数据服务或远程字典服务。其是使用C语言的编写的keyvalue存储系统应用场景:缓存,数据库,消息队列,分布式锁,点赞列表,排行榜等等2.red...
2022-04-14 20:25:38 4041浏览 0点赞 0回复 0收藏