MySQL脚本集

事情的起因是服务器硬盘差不多占满了,所以想着删除下磁盘,写个脚本定期删除下一些文件,这样子就不用定期手工删除文件了,不过搞着搞着就突然跑到MySQL去了,所以本篇文章内容只是作为笔记,方便后期查阅。文章主要内容包含快速查找大文件,查看磁盘占用情况,MySQL定时备份脚本,MySQL定时优化脚本。

阅读更多

MySQL全文索引

项目开发中,有很多类似模糊查询的需求,比如模糊查询某个公司的名称,用户名等等。一般来说开发中都会使用like进行模糊查询。并且针对like模糊的字段加上索引,使得like可以走索引加速查询。但是like+索引的模式只能在后模糊下有效,像这样xxx%,全模糊%xxx%和前模糊%xxx会导致索引失效,这样查询就比较慢了。关于索引失效的问题,前模糊我们可以使用翻转函数reverse让索引有效并加速查询,但是全模糊还是会让索引失效。针对全模糊的场景,我们可以使用之前的ElasticSearch搜索引擎技术,也可以使用MySQL全文索引。

阅读更多

上传文件ForkJoinPool多线程批量插入MySQL

对于ToG项目经常需要拿到Excel或Txt数据保存到MySQL中,因为解析Excel比较麻烦,这次使用txt文本解析并插入MySQL。如果解析一行就插入一次的话,网络会比较耗时。数据量越大越耗时,前段肯定会超时,而且用户体验也不好,我们使用MyBatis Plus批量插入。大概流程如下:

阅读更多

MySQL主从同步监控脚本

生产环境中通常会搭建很多MySQL主从环境,之前一直没实时监控主从同步状态,最近不忙,写个脚本监控下主从同步状态,当主从同步失败或者服务故障的时候可以实时发送消息给开发人员和运维人员,尽快修复问题。

阅读更多

Sharding-JDBC分表

上一篇文章Sharding-Jdbc读写分离与分库记录了Sharding-Jdbc读写分离与分库的过程,使用了Spring Boot2.6.1 + Mybatis Plus3.4.3.1 + druid1.2.8 + MySQL8.0.21 + Sharding-JDBC 5.0.0进行测试,如果不熟悉集成流程和读写分离,分库等操作的可以去上一篇文章查看。这篇文章主要记录Sharding-Jdbc分表,总共八个库,包含四主四从,对每个库的user表拆分为三张表存储的过程。
结构图

阅读更多

Sharding-JDBC读写分离与分库

上一篇文章Docker MySQL主从复制搭建了一个基础版的MySQL主从复制,这篇文章主要记录开发环境的读写分离与数据库分片的功能。选择比较流行的Sharding-JDBC进行读写分离和数据分片。之前在生产环境使用过MyCat,对性能影响还是比较大的,而且就一个简单的一主一从,利用代理的模式无疑又多增加了一层中间件。所以这次我们选择对性能影响比较小的Sharding-JDBC进行读写分离和分库分表。

阅读更多

Docker MySQL主从复制

MySQL 中复制的优点包括:

横向扩展解决方案 - 在多个副本之间分散负载以提高性能。在此环境中,所有写入和更新都必须在复制源服务器上进行。然而,读取可能发生在一个或多个副本上。该模型可以提高写入性能(因为源专用于更新),同时显着提高越来越多的副本的读取速度。

数据安全——因为数据被复制到副本,并且副本可以暂停复制过程,所以可以在副本上运行备份服务而不会破坏源上的相应数据。

分析 - 可以在源上创建实时数据,而信息分析可以在副本上进行,而不会影响源的性能。

远程数据分发 - 如果分支机构想要使用您的主要数据的副本,您可以使用复制来创建数据的本地副本供他们使用,而无需永久访问源。

阅读更多