- 博客(25)
- 收藏
- 关注
原创 MySQL大表优化方案
这里特别强调一下分片规则的选择问题,如果某个表的数据有明显的时间特征,比如订单、交易记录等,则他们通常比较合适用时间范围分片,因为具有时效性的数据,我们往往关注其近期的数据,查询条件中往往带有时间字段进行过滤,比较好的方案是,当前活跃的数据,采用跨度比较短的时间段进行分片,而历史性的数据,则采用比较长的跨度存储。如果数据有明显的热点,而且除了这部分数据,其他数据很少被访问到,那么可以将热点数据单独放在一个分区,让这个分区的数据能够有机会都缓存在内存中,查询时只访问一个很小的分区表,能够有效使用索引和缓存。
2024-05-15 09:04:37 249 1
原创 【解决问题】docker overlay 非常大,如何处理?
使用本地电脑虚拟机时,发现docker overlay层占用磁盘很大。发现overlay占用总=磁盘空间的98%的空间。启动docker时,设置容器服务的日志上线。写一个crontab脚本执行。
2024-01-25 20:57:09 767 1
原创 【解决问题】Docker运行容器出现 /conf/zoo.cfg: Permission denied
docker 运行容器permission denied。
2023-10-15 15:09:51 1079
原创 【解决问题】使用hutool工具包中ID生成器问题
然后查看服务器中的mac地址,发现两台事故机的mac地址前两位是一样的,而mac地址前两位是生产厂家标识,后四位字节是厂家特定序列号,无语至极,问题在封装的ID生成器。线上一共三台实例,而数据库表的数量已经接近八百万行,系统有一个功能,需要每次批量插入1000行的数据,查看日志请求,发现当时同一秒要处理多名用户的任务,导致用户无法批量插入出现异常。原因:发现当时三台实例中,有两台的workerId和dataCenterId都是一样。这个问题非常严重,先看一下源码中getSnowflake方法的具体实现。
2023-08-02 10:41:12 1996
原创 RocketMQ 5.0+ 实现任意时段的延迟消息
该类的实例在DefaultMessageStore中创建,通过在DefaultMessageStore中调用load()方法载并调用start()方法进行启动。在RocketMQ 5.0是通过TimerMessageStore时间轮的方式实现的,通过check文件CommitLog的消息队列到TimeLog文件(默认大小是100M)中。在RocketMQ5.0版本,支持任意时段的延迟消息。在Github中最新的版本中已经解决了这个问题,
2023-06-01 19:20:49 3010 5
原创 【解决问题】The bean ‘admin-service.FeignClientSpecification‘ could not be registered.
解决问题:The bean 'admin-service.FeignClientSpecification' could not be registered
2023-01-05 15:32:54 1421
原创 从前端防止XSS攻击总结
1.对一些特定的表单输入字段要进行验证,如手机、邮箱、身份证或特殊字符。2.对于一些输入框明确没有意义的内容 要进行长度限制。3.vue不要使用v-html进行数据 DOM 渲染 ,(当渲染的节点只是显示数据,无任何交互可以)。4.向后台插入数据 不能使用 GET请求向后台添加数据。5.script不能使用 .innerHTML() .setAttribute() 进行渲染节点数据。6.对于<a 标签>或者有请求后台的 H5标签 属性值复制不能使用 <%= **** %>
2021-10-08 17:10:38 627
原创 阅读《高性能mysql第三版》笔记(三)
阅读《高性能mysql第三版》笔记(三)前言:全文笔记都是阅读书籍记录的,请各位大佬多多指教,有不对的地方指点一番。谢谢!(1)Sechema和数据类型优化良好的设计和物理设计是高性能的基石。以下几种原则选择:* 更小的类型通常更好,占用的磁盘,内存和CPU都更少;* 简单数据类型更好,简单数据类型操作通常更少CPU周期;* 尽量避免null。通常情况下最好指定列not null;因为列值可以为null,使得索引更复杂。但是并不是一定要设置为not null,提升性能很小,我们应该对需要建立索引
2020-05-30 00:53:05 238
原创 阅读《高性能mysql第三版》笔记(二)
阅读《高性能mysql第三版》笔记(二)前言:全文笔记都是阅读书籍记录的,请各位大佬多多指教,有不对的地方指点一番。谢谢!(1)基准测试基准测试(benchmark)是MySQL新手和专家都需要掌握的一项基本技能。验证基于系统的一些假设,确认是否符合实际情况。重现系统中的某一些异常行为,已解决这些异常。(2)基准测试的策略2.1 基准测试有两种主要策略:(1)针对整个系统的整体测试;(集成式)(2)单独测试MySQL;(单组件式)2.2 针对整个系统做集成式测试,有一下原因:用户关注的
2020-05-22 23:58:34 711 2
原创 阅读《高性能mysql第三版》笔记(一)
阅读《高性能mysql第三版》笔记(一)前言:全文笔记都是阅读书籍记录的,请各位大佬多多指教,有不对的地方指点一番。谢谢!(1)MySQL的逻辑架构第一层架构:连接MySQL的客户端,可以是Navicat,SQLyog,或者代码的JDBC连接等等。每一个SQL的执行都是一个线程的创建和销毁过程,但是在MYSQL5.5版本只有进行的优化,会有ThreadPool的概念,减少消耗。第二层架构:MySQL的核心层,里面包括触发器,存储过程,视图,内置函数,缓存,解析和分析等等。第三层架构:是存储引擎,
2020-05-20 23:08:53 193
原创 Docker基础学习(个人笔记)
1.Docker是基于GO语言开发的。2.Docker的架构:docker有三个基本概念:(1)镜像:Docker镜像相当于java中的类,(2)容器:Docker容器相当于java中的实例,(3)仓库:管理和保存镜像的。docker使用客户端-服务端的CS架构,使用远程API来管理和创建Docker容器。3.centos8 安装docker1.下载静态二进制存档。2.解压 tar -xzvf3.可选:将二进制文件移到可执行路径上的目录,例如/usr/bin/。如果跳过此步骤,则在调用d
2020-05-17 21:10:31 155
原创 【解决问题】io.lettuce.core.RedisCommandTimeoutException: Command timed out
@【解决问题】io.lettuce.core.RedisCommandTimeoutException: Command timed out(1)配置redis的是jedis还是lettuce(2)把spring.redis.timeout调大一点;例如5000ms
2020-05-17 20:34:24 1532
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人