数据库
Java领域佼佼者
免费学习网资源:(https://space.bilibili.com/526518958)
十余年Java行业经验。曾就职于阿里、携程等一线互联网公司。 专注于java领域,精通软件架构设计,对于高并发、高性能服务有深刻的见解 ,在服务化基础架构和微服务技术有大量的设计和建设经验
展开
-
面试必刷:最有用的Mysql面试题,面试了无数公司总结的
想进大厂,mysql不会那可不行,来接受mysql面试挑战吧,看看你能坚持到哪里?1. 能说下myisam 和 innodb的区别吗?myisam引擎是5.1版本之前的默认引擎,支持全文检索、压缩、空间函数等,但是不支持事务和行级锁,所以一般用于有大量查询少量插入的场景来使用,而且myisam不支持外键,并且索引和数据是分开存储的。innodb是基于聚簇索引建立的,和myisam相反它支持事务、外键,并且通过MVCC来支持高并发,索引和数据存储在一起。2. 说下mysql的索引有哪些吧,聚簇原创 2020-09-07 20:05:26 · 288 阅读 · 0 评论 -
查询提升200倍,ClickHouse你值得拥有!
一、ClickHouse 是什么?ClickHouse:是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)我们首先理清一些基础概念OLTP:是传统的关系型数据库,主要操作增删改查,强调事务一致性,比如银行系统、电商系统 OLAP:是仓库型数据库,主要是读取数据,做复杂数据分析,侧重技术决策支持,提供直观简单的结果接着我们用图示,来理解一下列式数据库和行式数据库区别在传统的行式数据库系统中(MySQL、Postgres和MS SQL Server),数据按如下顺序存储:原创 2020-08-24 13:22:23 · 390 阅读 · 0 评论 -
Kafka 节点重启失败导致数据丢失的分析排查与解决之道
背景在 2 月10 号下午大概 1 点半左右,收到用户方反馈,发现日志 kafka 集群 A 主题 的 34 分区选举不了 leader,导致某些消息发送到该分区时,会报如下 no leader 的错误信息:In the middle of a leadership election, there is currently no leader for this partition and hence it is unavailable for writes.由于 A 主题 34 分区的原创 2020-08-14 14:27:30 · 1788 阅读 · 0 评论 -
Kafka 节点重启失败导致数据丢失的分析排查与解决之道
背景在 2 月10 号下午大概 1 点半左右,收到用户方反馈,发现日志 kafka 集群 A 主题 的 34 分区选举不了 leader,导致某些消息发送到该分区时,会报如下 no leader 的错误信息:In the middle of a leadership election, there is currently no leader for this partition and hence it is unavailable for writes.由于 A 主题 34 分区的原创 2020-08-10 19:35:13 · 925 阅读 · 1 评论 -
用了这么久,token和session的区别,你真的清楚了吗?
session和token都是用来保持会话,功能相同一、session机制,原理session是服务端存储的一个对象,主要用来存储所有访问过该服务端的客户端的用户信息(也可以存储其他信息),从而实现保持用户会话状态。但是服务器重启时,内存会被销毁,存储的用户信息也就消失了。不同的用户访问服务端的时候会在session对象中存储键值对,“键”用来存储开启这个用户信息的“钥匙”,在登录成功后,“钥匙”通过cookie返回给客户端,客户端存储为sessionId记录在cookie中。当客户端.原创 2020-07-29 14:10:31 · 595 阅读 · 0 评论 -
Kafka 和 RocketMQ 快的飞起,底层存储有什么不同?
都知道 RocketMQ 和 Kafka 消息都是存在磁盘中的,为什么消息存磁盘读写还可以这么快?有没有做了什么优化?都是存磁盘它们两者的实现之间有什么区别么?各自有什么优缺点?今天我们就来一探究竟。存储介质-磁盘一般而言消息中间件的消息都存储在本地文件中,因为从效率来看直接放本地文件是最快的,并且稳定性最高。毕竟要是放类似数据库等第三方存储中的话,就多一个依赖少一份安全,并且还有网络的开销。那对于将消息存入磁盘文件来说一个流程的瓶颈就是磁盘的写入和读取。我们知道磁盘相对而言读写转载 2020-07-28 14:54:58 · 631 阅读 · 0 评论 -
【Nginx】如何实现Nginx的高可用负载均衡?看完我也会了!!
写在前面不得不说,最近小伙伴们的学习热情是越来越高,不断向冰河提出新的想学习的技术。这不,又有小伙伴问我:冰河,你在【Nginx专题】写的文章基本上都是Nginx单机版的,能不能写一篇关于Nginx的高可用的文章呢?我:没问题,安排上!这不,就有了这篇文章!!Keepalived 简要介绍Keepalived 是一种高性能的服务器高可用或热备解决方案, Keepalived 可以用来防止服务器单点故障的发生,通过配合 Nginx 可以实现 web 前端服务的高可用。Keepalived 以原创 2020-07-27 17:37:20 · 234 阅读 · 0 评论 -
天天CURD,你了解为了执行SQL,MySQL用了怎样的架构设计吗?
大家好, 从今天开始我们开启MySQL底层原理的探索里程,今天是第一篇我们将MySQL从一个黑盒状态一点点拨云见日剖析来了解整个MySQL的架构设计和底层组件把MySQL当作一个黑盒来执行SQL现在我们来看看, 对于研发工程师来说数据库是什么东西?平时我们做系统开发时,一般情况下都会连接到一个MySQL数据库上去,去执行各种增删改查语句。如下图所示:image.png但是实际上我们在使用MySQL的过程中,总会遇到这样那样的一些问题,比如死锁异常、SQL性能太差、MySQL gone a原创 2020-07-27 15:09:56 · 242 阅读 · 0 评论 -
一文总结:分布式一致性技术是如何演进的?
简介:分布式一致性(Consensus)作为分布式系统的基石,一直都是计算机系统领域的热点。近年来随着分布式系统的规模越来越大,对可用性和一致性的要求越来越高,分布式一致性的应用也越来越广泛。纵观分布式一致性在工业界的应用,从最开始的鼻祖Paxos的一统天下,到横空出世的Raft的流行,再到如今Leaderless的EPaxos开始备受关注,背后的技术是如何演进的?本文将从技术角度探讨分布式一致性在工业界的应用,并从可理解性、可用性、效率和适用场景等几个角度进行对比分析。分布式一致性分布式.原创 2020-07-24 15:32:15 · 165 阅读 · 0 评论 -
MySQL性能优化做得好的人,都懂的索引绝技
一步一步推导出 MySQL索引的底层数据结构。MySQL作为互联网中非常热门的数据库,其底层的存储引擎和数据检索引擎的设计非常重要,尤其是 MySQL数据的存储形式以及索引的设计,决定了 MySQL 整体的数据检索性能。我们知道,索引的作用是做数据的快速检索,而快速检索实现的本质是数据结构。通过不同数据结构的选择,实现各种数据快速检索。在数据库中,高效的查找算法是非常重要的,因为数据库中存储了大量数据,一个高效的索引能节省巨大的时间。比如下面这个数据表,如果 MySQL 没有实现索引算法,那么查原创 2020-07-09 14:58:56 · 178 阅读 · 0 评论 -
牛逼!IDEA不愧为神器,结合Groovy脚本,简直天下无敌
# 导语如今, 有许许多多的插件或者编辑器都支持根据数据表自动生成数据实体类了, 比如IDEA, 各种MyBatis的代码生成工具, 等等;本篇介绍一下如何使用IDEA的groovy脚本文件生成带JPA注解的实体类。# 使用IDEA连接数据库注意正式版IDEA才有此功能, 社区版木有 演示图片使用的IDEA版本为2018.3, 不同版本界面可能有细小差别1、创建新的数据连接如果没有, 可以上方菜单栏: 视图-工具窗口-Database打开(新建Oracle数据库也是相同操作)。原创 2020-07-01 13:52:58 · 407 阅读 · 1 评论 -
后端程序员必备:SQL高性能优化指南!35+条优化建议立马GET
由于工作需要,最近做了很多 BI 取数的工作,需要用到一些比较高级的 SQL 技巧,总结了一下工作中用到的一些比较骚的进阶技巧,特此记录一下,以方便自己查阅,主要目录如下:SQL 的书写规范 SQL 的一些进阶使用技巧 SQL 的优化方法其他相关阅读:后端程序员必备:书写高质量SQL的30条建议 MySQL高性能优化规范建议,速度收藏SQL 的书写规范在介绍一些技巧之前,有必要强调一下规范,这一点我发现工作中经常被人忽略,其实遵循好的规范可读性会好很多,应该遵循哪些规范呢1、 表明原创 2020-06-29 14:00:48 · 341 阅读 · 0 评论 -
可怕!你没看错,这次确实是纯手工实现一个MyBatis框架
目录 前言 JDBC MyBatis 源码分析 前置知识 原理分析 自己实现一个 MyBatis 框架 # 前言MyBatis 是一个非常优秀的持久层应用框架,目前几乎已经一统天下。既然是持久层框架,那么一定是对于数据库的操作,Java 中谈到数据库操作,一定少不了 JDBC。那么 ,MyBatis 比传统的 JDBC 好在哪那?MyBatis 又在哪方面做了优化呢?# JDBC如果我们需要查询所有用户,传统的 JDBC 会这原创 2020-06-19 15:57:34 · 303 阅读 · 0 评论 -
天天唠叨的MySQL优化,阿里P8架构师告诉你到底该怎么玩?
说起MySQL的查询优化,相信大家收藏了一堆奇技淫巧:不能使用 SELECT*、不使用NULL字段、合理创建索引、为字段选择合适的数据类型..... 你是否真的理解这些优化技巧?是否理解其背后的工作原理?在实际场景下性能真有提升吗?我想未必。因而理解这些优化建议背后的原理就尤为重要,希望本文能让你重新审视这些优化建议,并在实际业务场景下合理的运用。阿里P8架构师谈(数据库系列):那些年,你未曾了解的MySQL慢查询优化、索引优化、以及表等优化总结:https://www.bilibili.com/vid转载 2020-06-12 14:42:01 · 429 阅读 · 0 评论 -
造了一个 Redis 分布锁的轮子,没想到还学到这么多东西
这次我们举得实际一点,假设id=1,balance=1000,不过这次我们扣款1000,两个事务的时序图如下:炸天的分布式,redis、zk、kafka、hbase,横扫一切关于Redis的问题:https://www.bilibili.com/video/BV13z411b7mU这次使用两个命令窗口真实执行一把:注意事项 2,③处查询到id=1,balance=1000,但是实际上由于此时事务 1 已经提交,最新结果如②处所示id=1,balance=900。本来 J...原创 2020-06-11 16:22:16 · 241 阅读 · 0 评论 -
看完这篇Redis缓存三大问题,保你能和面试官互扯。
Redis推荐阅读:https://www.bilibili.com/video/BV13z411b7mU日常的开发中,无不都是使用数据库来进行数据的存储,由于一般的系统任务中通常不会存在高并发的情况,所以这样看起来并没有什么问题。一旦涉及大数据量的需求,如一些商品抢购的情景,或者主页访问量瞬间较大的时候,单一使用数据库来保存数据的系统会因为面向磁盘,磁盘读/写速度问题有严重的性能弊端,详细的磁盘读写原理请参考这一片[]。在这一瞬间成千上万的请求到来,需要系统在极短...原创 2020-06-10 16:39:31 · 326 阅读 · 0 评论 -
数据库和缓存一致性的几种实现方式,我们来聊聊?
缓存是互联网高并发系统里常用的组件,由于多增加了一层,如果没有正确的使用效果可能适得其反,诸如“缓存是删除还是更新?”,“先操作数据库还是先操作缓存?”都是些老生常谈的话题,今天我们就来聊一聊缓存与数据库的双写一致性的解决方案。Cache Aside Pattern在一开始先科普下最经典的缓存+数据库读写的模式,就是 Cache Aside Pattern。读的时候,先读缓存,缓存没有的话,就读数据库,然后取出数据后放入缓存,同时返回响应。 更新的时候,先更新数据库,然后再删除缓存。推.原创 2020-06-10 16:31:55 · 275 阅读 · 0 评论 -
被面试官问懵B了,十亿级数据ES搜索怎么优化?
面试题es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊?面试官心理分析这个问题是肯定要问的,说白了,就是看你有没有实际干过 es,因为啥?其实 es 性能并没有你想象中那么好的。很多时候数据量大了,特别是有几亿条数据的时候,可能你会懵逼的发现,跑个搜索怎么一下 5~10s,坑爹了。第一次搜索的时候,是5~10s,后面反而就快了,可能就几百毫秒。你就很懵,每个用户第一次访问都会比较慢,比较卡么?所以你要是没玩儿过 es,或者就是自己玩玩儿 demo,被问到这个问题容易懵逼,显示出你对原创 2020-06-09 13:19:51 · 264 阅读 · 0 评论 -
同样是服务注册中心,Eureka凭什么比ZooKeeper优秀?
1. 前言服务注册中心,给客户端提供可供调用的服务列表,客户端在进行远程服务调用时,根据服务列表然后选择服务提供方的服务地址进行服务调用。服务注册中心在分布式系统中大量应用,是分布式系统中不可或缺的组件,例如rocketmq的name server,hdfs中的namenode,dubbo中的zk注册中心,spring cloud中的服务注册中心eureka。在spring cloud中,除了可以使用eureka作为注册中心外,还可以通过配置的方式使用zookeeper作为注册中心。既然这...原创 2020-05-29 16:21:48 · 369 阅读 · 0 评论 -
P9资深技术专家打造的淘宝双11,618京东节亿级并发量系统手册,一起走进阿里、京东架构大世界
我们在找工作时,经常在招聘信息上看到有这么一条有构建大型互联网服务及高并发等经验,想到高并发,我们第一想到了媒体上经常出现的新闻阿里双11每秒处理xx万订单,瞬间觉得高并发是一种很屌的技术,很高大上高并发的概念高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求那么很多请求,具体达到多少请求才算是高并发系统呢?这个也没有明确数量上的定义,根据网上很多大型互联网公司的相关高并发博客,一般PV在千万级别以上的公原创 2020-05-23 18:44:40 · 1534 阅读 · 0 评论