
数据库
文章平均质量分 89
静看º一季花开花落
这个作者很懒,什么都没留下…
展开
-
MySQL执行计划解读
MySQL查询进行SQL查询,一般要求尽量使用到索引,否则会导致全表扫描。问题1:全表扫描会产生什么问题?全表扫描实际上是直接扫描表的主键索引,依次读并发送。详细介绍,查看以下博客。MySQL-全表扫描以及MySQL-全表扫描成本计算 另外,简单查询是不会加锁的。例如select * from table;问题2:怎么确定有没有使用到索引?explain关键字。原创 2024-05-16 14:26:55 · 434 阅读 · 0 评论 -
如何查看MySQL binlog日志
错误 [1227] [42000]: Access denied;you need (开启方式:打开mysql配置文件my.cnf,在[mysqlId]下面增加。若是执行SQL报错如下,则是权限不够。若是OFF,则需要开启binlog日志。log_bin:on 是开启状态。原创 2024-05-13 11:24:19 · 5449 阅读 · 1 评论 -
Mysql修改表结构、添加索引会锁表吗?
在MySQL5.7和MySQL8.0中,表结构修改和索引添加通常不会锁定整个表。但是,在某些情况下,MySQL可能需要锁定整个表。原创 2024-05-10 16:57:31 · 2086 阅读 · 0 评论 -
MySQL-三大日志
bin log redo log undo log原创 2023-09-19 17:45:06 · 453 阅读 · 0 评论 -
MySQL缓冲池Buffer Pool
MySQL Buffer Pool 缓冲池原创 2023-09-18 20:15:19 · 522 阅读 · 0 评论 -
Redission分布式锁详解
在分布式系统中,当不同进程或线程一起访问共享资源时,会造成资源争抢,如果不加以控制的话,就会引发程序错乱。而分布式锁它采用了一种互斥机制来防止线程或进程间相互干扰,从而保证了数据的一致性。 **Redission是一个基于Redis实现的Java分布式对象存储和缓存框架。它提供了丰富的分布式数据结构和服务。**例如:分布式锁、分布式队列、分布式Rate Limiter等。原创 2023-07-27 18:29:38 · 14485 阅读 · 1 评论 -
ES-索引管理
搜索引擎是对数据的检索,所以我们先从生活中的数据说起。结构化数据非结构化数据也称作行数据,是由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理。指具有固定格式或有限长度的数据,如数据库,元数据等。又可称为全文数据,不定长或无固定格式,不适于由数据库二维表来表现,包括所有格式的办公文档、XML、HTML、Word 文档,邮件,各类报表、图片和咅频、视频信息等。原创 2023-09-08 21:04:22 · 5367 阅读 · 0 评论 -
ElasticSearch(ES)介绍
1、ElasticSearch具备非常强的大数据分析能力。虽然Hadoop也可以做大数据分析,但是ElasticSearch的分析能力非常高,具备Hadoop不具备的能力。比如有时候用Hadoop分析一个结果,可能等待的时间比较长。2、ElasticSearch可以很方便的进行使用,可以将其安装在个人的笔记本电脑,也可以在生产环境中,将其进行水平扩展。3、在当今大数据时代,掌握近实时的搜索和分析能力,才能掌握核心竞争力,洞见未来。 ElasticSearch是最受欢迎的企业级搜索引擎。。原创 2023-06-13 12:44:16 · 1054 阅读 · 0 评论 -
Redis-集群节点分片手段
虽然可以通过主从复制和哨兵机制保障了高可用,就读写分离而言虽然slave节点扩展了主从的读并发能力,但是写能力和存储能力是无法进行扩展,就只能是master节点能够承载的上限。 如果面对海量数据那么必然需要构建master(主节点分片)之间的集群,同时必然需要吸收高可用(主从复制和哨兵机制)能力,即每个master分片节点还需要有slave节点,这是分布式系统中典型的纵向扩展(集群的分片技术)的体现;所以在Redis 3.0版本中对应的设计就是Redis Cluster。转载 2023-06-03 17:30:18 · 228 阅读 · 0 评论 -
Redis-主从复制以及哨兵
在Web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务。在Redis层面,高可用的含义要宽泛一些,除了保证提供正常服务(如主从分离快速容灾技术等),还需要考虑数据容量扩展数据安全等等。在Redis中,实现 高可用 的技术主要包括 持久化、复制、哨兵 和 集群。持久化:持久化是最简单的高可用方法。它的主要作用是数据备份,即将数据存储在硬盘,保证数据不会因进程退出而丢失。复制:复制是高可用Redis的基础,哨兵和集群都是在复制基础上实现高可用的。原创 2023-06-02 18:49:35 · 718 阅读 · 0 评论 -
Redis-事务
Redis 事务的本质是一组命令的集合。事务支持一次执行多个命令,一个事务中所有命令都会被序列化。在事务执行过程,会按照顺序串行化执行队列中的命令,其他客户端提交的命令请求不会插入到事务执行命令序列中。redis事务就是一次性、顺序性、排他性的执行一个队列中的一系列命令。redis事务就是一次性、顺序性、排他性的执行一个队列中的一系列命令。但Redis事务类似单独的切面,可以单独提交事务,所以有可能会产生一定的异常,但是这些都是基于编码方面导致的,正常执行过程中,要不成功要不失败。转载 2023-05-26 18:28:46 · 99 阅读 · 0 评论 -
Redis-事件机制
众所周知Redis采用事件驱动机制来处理大量的网络IO,它采用的是自己实现一个非常简洁的事件驱动库 ae_event。而Redis中的事件驱动库只关注网络IO,以及定时器。 Redis是基于线程模型,由于Redis的性能在于IO不是CPU,所以在6.0引入IO多路复用。但是Redis本身的事件库是自己实现的,所以IO多路复用的设计,主要用于多一些线程进行同步读或者同步写,而不会进行同步的读写。它的工作线程始终都是一个,只是处理的现场不在是单个线程来处理。转载 2023-05-26 17:19:57 · 278 阅读 · 0 评论 -
Redis-RDB/AOF
为了防止数据丢失以及服务重启时能够恢复数据,Redis支持数据的持久化,主要分为两种方式,分别是RDB和AOF;当然实际场景下还会使用这两种的混合模式。RDBAOF虚拟内存(VM)和DISKSTORE。**虚拟内存(VM)方式,从Redis Version 2.4开始就被官方明确表示不再建议使用;至于DISKSTORE方式,是从Redis Version 2.8版本开始提出的一个存储设想,到目前为止Redis官方也没有在任何stable版本中明确建议使用这用方式。。原创 2023-05-26 15:06:20 · 692 阅读 · 0 评论 -
Redis-数据结构
了解Redis,都大概知道Redis有5种基本数据类型:字符串(string)、列表(list)、哈希(hash)、集合(set)、有序集合(zset)、5.0中Stream数据类型。但是这些数据类型的底层都是按照对象结构与对应的编码组合而成。这也就是说有的底层数据结构可以是多个数据类型的原因。首先看下图(6.0版本): 从图可以清晰的看出,Redis的底层数据结构是由Redis对象的数据类型以及编码类型来确定的。对象设计机制编码类型和底层数据结构。注意:。转载 2023-05-25 16:04:38 · 434 阅读 · 0 评论 -
Redis-概述
如果熟悉JVM底层的话,就能了解Java程序的运行大多数都是基于对内存的操作,读取、并更、清理,并同时保证数据的可靠性。即使是数据库,例如MySQL几乎都是基于对缓冲区的操作,只是通过后台线程进行刷盘到磁盘中,来达到高响应的。 但是数据库本身是为程序提供数据的持久化,它是以外部组件的形式来存在。那么其内部类似Java程序一样给用户使用外,数据库也是为了给Java程序或者其他程序提供数据持久化。但是一个程序去工作的话,它的有它的能力范畴。原创 2023-05-24 17:10:51 · 1166 阅读 · 0 评论 -
MySQL分库分表/主从复制
分表方案主要是针对于单表字段过多或数据过多的情况去做的,通过垂直、水平分表的手段,能够很好解决单表由于字段、数据量过多产生的一系列负面影响,但无论是垂直分表还是水平分表,都必须建立在单库压力不高,但是单表性能不够的情况下进行的,因为它们都属于库内分表。如果单库的压力大,可以考虑分库分表。因为单个库的数据连接是有限,即使是连接复用,但是能承受的QPS事有限的。当高并发请求过了,如果处理不当,就会直接把数据库搞奔溃。注意: 跨库也存在一定的问题。原创 2023-05-23 11:48:51 · 544 阅读 · 0 评论 -
MySQL-锁
数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则。在任何多线程环境下,存在资源竞争都需要锁机制来保证数据的一致性。 MySQL数据库由于其自身架构的特点,存在多种数据存储引擎,每种存储引擎的锁定机制都是为各自所面对的特定场景而优化设计,所以各存储引擎的锁定机制也有较大区别。表级锁定行级锁定和页级锁定。 如果要进行备份的话,需要增加全局锁。原创 2023-05-22 18:03:39 · 847 阅读 · 1 评论 -
MySQL-索引
在日常工作中,经常会遇见一些慢SQL,在分析这些慢SQL时,通常会看下SQL的执行计划,验证SQL执行过程中有没有走索引。之后会调整一些查询条件,增加必要的索引,SQL执行效率就会提升几个数量级。那么为什么加了索引就会能提高SQL的查询效率?为什么有时候加了索引SQL执行?索引(Index)是帮助 MySQL高效获取数据的数据结构(有序)。原创 2023-05-19 17:46:09 · 829 阅读 · 0 评论 -
MySQL分层架构分析
MySQL概述原创 2022-09-02 17:07:28 · 1130 阅读 · 0 评论 -
MySQL 事务篇
原创 2023-04-28 15:19:50 · 104 阅读 · 0 评论 -
常见复制模型
在分布式系统中,数据通常需要被分散在多台机器上,主要为了达到以下目的:扩展性,数据量因读写负载巨大,一台机器无法承载,数据分散在多台机器上可以有效地进行负载均衡,达到灵活的横向扩展。容错、高可用,在分布式系统中,单机故障是常态,在单机故障下仍然希望系统能够正常工作,这时候就需要数据在多台机器上做冗余,在遇到单机故障时其他机器就可以及时接管。统一的用户体验,如果系统客户端分布在多个地域,通常考虑在多个地域部署服务,以方便用户能够就近访问到他们所需要的数据,获得统一的用户体验。数据的多机分布。原创 2023-04-26 18:02:17 · 147 阅读 · 0 评论