数据库
文章平均质量分 65
hcmony
不积跬步,无以至千里;不积小流,无以成江海
展开
-
8张图,5大组件!了解MySQL查询语句执行过程。
开篇 相信广大程序员朋友经常使用MySQL数据库作为书籍持久化的工具,我们最常使用的就是MySQL中的SQL语句,从客户端向MySQL发出一条条指令,然后获取返回的数据结果进行后面的逻辑处理。尽管大家经常使用SQL语句完成工作,你是否关注过其执行的阶段,利用了哪些技术完成?今天,就带大家一起看看MySQL数据库处理SQL请求的全过程。下面将会讲述如下内容: 查询请求在MySQL中的处理流程 MySQL 中处理SQL的组件介绍,包括: 连接器 查询缓存 分转载 2021-02-18 10:28:58 · 512 阅读 · 0 评论 -
自已搭建的mysql 查看慢日志记录
1 ,查看mysql 存储位置show global variables like "%datadir%";2、查询慢日志是否开启。mysql> show variables like '%slow_query_log%'3、开启慢查询日志mysql> set global slow_query_log=1;4、去mysql 存储位置查看慢日志记录5、如下图:文件里面就有某个超过10S的sql语句...原创 2020-12-30 09:37:01 · 147 阅读 · 0 评论 -
利用Explain优化sql 详解
Explain简介Explain关键字是Mysql中sql优化的常用「关键字」,通常都会使用Explain来「查看sql的执行计划,而不用执行sql」,从而快速的找出sql的问题所在。在讲解Explain之前首先创建需要的「用户表user、角色表role、以及用户角色关系表role_user」作为测试用的表://用户表DROPTABLEIFEXISTS`user`;CREATETABLE`user`(`id`int(11)NOTNULL,`name`va...转载 2020-09-28 15:50:13 · 1805 阅读 · 0 评论 -
图解 MySQL 索引:B-树、B+树
看了很多关于索引的博客,讲的大同小异。但是始终没有让我明白关于索引的一些概念,如B-Tree索引,Hash索引,唯一索引….或许有很多人和我一样,没搞清楚概念就开始研究B-Tree,B+Tree等结构,导致在面试的时候答非所问!索引是什么?索引是帮助MySQL高效获取数据的数据结构。索引能干什么?提高数据查询的效率。索引:排好序的快速查找数据结构!索引会影响where后面的查找,和order by 后面的排序。公众号:Java后端 发布过几十篇 MySQL 文章,其中包括索引的文章,可以转载 2020-09-28 15:33:17 · 172 阅读 · 0 评论 -
记一次开发环境redis出现key丢失排查
开发环境大家共用redis集群, 出现设置的redis key随机丢失1. 检查key是否设置了过期时间执行ttl key发现值是-1,并没有设定过期时间2. 检查是否有人删除key,或者flushdb,flushall执行info commandstatscmdstat_XXX:calls=XXX,usec=XXX,usec_per_call=XXX看...转载 2019-11-15 15:16:54 · 906 阅读 · 0 评论 -
Specified key was too long; max key length is 767 bytes
今天生产上遇到上述的bug:系统变量innodb_large_prefix开启了,则对于使用DYNAMIC或COMPRESSED行格式的InnoDB表,索引键前缀限制为3072字节。如果禁用innodb_large_prefix,不管是什么表,索引键前缀限制为767字节。上述的bug很明显是索引超出了限制的长度767(我司生产上innodb_large_pref...转载 2019-08-06 17:27:03 · 193 阅读 · 0 评论 -
Redis的Pipeline管道操作,节约网络开销
Redis 管道技术可以在服务端未响应时,客户端可以继续向服务端发送请求,并最终一次性读取所有服务端的响应。Pipeline 实现的原理是队列,而队列的原理是时先进先出,这样就保证数据的顺序性代码如下:1,jedis jar 包引入 <dependency> <groupId>redis.clients</g...原创 2019-05-07 15:40:27 · 591 阅读 · 0 评论 -
Redis 的Transaction事务处理相关代码java实现
Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证:事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。 事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。一个事务从开始到执行会经历以下三个阶段:开始事务。 命令入队。 执行事务。单个 Redis 命令的执行是原子性的,但 ...原创 2019-05-07 11:27:15 · 711 阅读 · 0 评论 -
使用redis进行发布订阅消息
Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。Redis 客户端可以订阅任意数量的频道。Redis提供了发布订阅功能,可以用于消息的传输,Redis的发布订阅机制包括三个部分,发布者,订阅者和Channel。发布者和订阅者都是Redis客户端,Channel则为Redis服务器端,发布者将消息发送到某个的频道,订阅了这个...原创 2019-05-07 10:49:04 · 7376 阅读 · 1 评论 -
一篇讲得比较好的Redis分布式锁的正确实现方式
Redis分布式锁的正确实现方式前言分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正确地实现Redis分布式锁。可靠性首先,为了...转载 2019-01-25 15:52:13 · 652 阅读 · 0 评论 -
为什么分布式一定要有redis,redis的一些优缺点
1、为什么使用redis分析:博主觉得在项目中使用redis,主要是从两个角度去考虑:性能和并发。当然,redis还具备可以做分布式锁等其他功能,但是如果只是为了分布式锁这些其他功能,完全还有其他中间件(如zookpeer等)代替,并不是非要使用redis。因此,这个问题主要从性能和并发两个角度去答。回答:如下所示,分为两点(一)性能如下图所示,我们在碰到需要执行耗时特别久,且结果不频繁变动的SQ...转载 2018-06-14 16:23:20 · 54299 阅读 · 18 评论 -
分库分表时用Redis自增实现计数实现分布式id
最近公司项目用户量越来越大,之前的老系统由于设计不合理,已经不能满足目前的需要。现在做了一个新系统,两个系统不同的库,同时在运行。涉及到表id的问题,为了解决这个问题,使用redis来实现分布式id ,具体代码如下:1,设置一个key实现计数器功能,每取值一次调一次这个方法进行加1操作public void incr(Integer dbIndex, String key) throw原创 2018-01-15 19:48:05 · 3106 阅读 · 0 评论 -
redis的一些性能测试,主要是keys和smembers
1,测试循环存100万数据,显示qps1201,cpu 使用2.7%,正常范围内。2,测试循环存和取一起执行100万数据,显示qps1752,cpu 使用4.0%,正常范围内。3,测试用keys取100万数据,显示qps1752,cpu 使用6.0%,cpu非常高了。4,测试用存取和keys一起执行100万数据,显示qps17原创 2017-11-27 20:06:39 · 14842 阅读 · 4 评论 -
redis的事务处理
事务处理更新时间:2017-06-07 13:26:11 场景介绍云数据库 Redis 版支持 Redis 中 定义的“事务(transaction)”机制,即用户可以使用 MULTI,EXEC,DISCARD,WATCH,UNWATCH 指令用来执行原子性的事务操作。需要强调的是,Redis 中定义的事务,并不是关系数据库中严格意义上的事务。当转载 2017-11-27 19:47:53 · 468 阅读 · 0 评论 -
Redis时延问题分析及应对
Redis时延问题分析及应对Redis的事件循环在一个线程中处理,作为一个单线程程序,重要的是要保证事件处理的时延短,这样,事件循环中的后续任务才不会阻塞; 当redis的数据量达到一定级别后(比如20G),阻塞操作对性能的影响尤为严重; 下面我们总结下在redis中有哪些耗时的场景及应对方法;耗时长的命令造成阻塞keys、sort等命令keys命令用于查找所有符合转载 2017-11-24 14:31:18 · 340 阅读 · 0 评论 -
记一次线上事故,redis 的keys问题,cpu引起的性能问题
公司的一个接口用redis存储pv/uv,一直以来,非常好用,某天发现,接口反映非常慢,经过长时间排查。是redis的cpu非常高,到了60%以上。之前设置的70%报警。然后有个广告使用了keys 查询,我们的redis 里面的key 有几千万,致使 cpu 超高。改造这个方法后,速度明显起来了,cpu也降到了20%以后千万记得不用keys查询。原创 2017-11-24 11:51:41 · 2546 阅读 · 2 评论 -
网站缓存技术总结( ehcache、memcache、redis对比)
http://www.xuetimes.com/archives/325 网站技术高速发展的今天,缓存技术已经成为大型网站的一个关键技术,缓存设计好坏直接关系的一个网站访问的速度,以及购置服务器的数量,甚至影响到用户的体验。网站缓存按照存放的地点不同,可以分为客户端缓存、服务端缓存。客户端缓存客户端缓存又可分为:浏览器缓存、网关或代理转载 2017-01-18 14:54:14 · 882 阅读 · 0 评论