背景
数据库没有做备份,一天突然由于断电或其他原因导致无法启动了,且设置了innodb_force_recovery=6都无法启动,里面的数据怎么才能恢复出来?
本例采用解析建表语句+表空间传输的方式进行恢复。
2025年06月12日
数据库没有做备份,一天突然由于断电或其他原因导致无法启动了,且设置了innodb_force_recovery=6都无法启动,里面的数据怎么才能恢复出来?
本例采用解析建表语句+表空间传输的方式进行恢复。
2025年06月12日
SelectDB 在云原生架构方面的设计与实践充分体现了其对弹性资源管理、成本优化和高效性能的深度探索,主要工作可归纳为以下几个核心方向:
通过将计算层与存储层彻底解耦,SelectDB 实现了资源的高效利用与成本优化。存储层采用单副本共享的对象存储方案(如阿里云 OSS、腾讯云 COS),显著降低存储成本(最高可降至传统三副本存储的 1/10)。计算层则根据负载动态调整,支持弹性扩缩容。同时,通过本地 SSD 缓存热数据(如过去 7 天的数据)和预读优化技术,有效缓解对象存储的网络延迟问题,保障查询性能。
2025年06月12日
MySQL 使用典型的客户端/服务器(Client/Server)结构,架构如下所示:
MySQL 体系结构大体可以分为三层:客户端、服务器层、存储引擎层、系统文件层。其中,服务器层又包括了连接管理、SQL 接口、解析器、优化器、缓冲与缓存以及各种管理工具与服务等。
2025年06月12日
测试工程师在测试软件的过程中,流程往往是先接口测试,接着就是功能性测试。在做功能性测试的时候,往往有这么一个工作场景,就是出现错误后,我们怎么快速排除数据库报错。
举例某个电商网站,当我们文本框中输入“电视机”,点击搜索按钮,如果网站显示的结果是错误的,那测试人员有必要去数据库检查。但是我们怎么才能快速定位bug呢?这个时候,我们就需要使用mysql日志来解决这个问题。
Mysql日志,是用来记录数据库所有增删改查操作的,测试人员可以利用该工具查看软件某功能执行的sql语句,看到sql语句操作的哪个数据仓库,哪个表,方便测试人员快速定位bug。
2025年06月12日
前两天发现同事要做一个对大表进行范围查询的功能,然后想在本地生成7千万数据进行性能测试,苦于代码插入太慢,SQL单条插入也很慢,于是想到了用以下几个方法快速生成千万级数据。
首先我们的表结构如下(嫌麻烦也可以直接看下面的截图):
2025年06月12日
PyMySQL是一个用于Python的纯Python MySQL客户端库,它实现了PEP 249 Python数据库API规范,并提供了对MySQL数据库的连接和操作功能。
2025年06月12日
注:MySQL可以为整数类型指定宽度,比如 int(3)、int(5),这个限制不是限制value的合法范围,所以对绝大数应用没有任何意义,对于存储而言,int(3) 和 int(5) 是相同的,只是对一些MySQL的交互工具显示字符的个数有用,如mysql客户端。
2025年06月12日
[mysqld]
# 基础设置
datadir=/var/lib/mysql # 数据文件存储路径
socket=/var/lib/mysql/mysql.sock # Unix套接字路径
pid-file=/var/run/mysqld/mysqld.pid # 进程ID文件
port=3306 # 服务端口
user=mysql # 运行用户
# 字符集设置(重要!避免乱码)
character-set-server=utf8mb4 # 服务器默认字符集
collation-server=utf8mb4_unicode_ci # 默认排序规则
init_connect='SET NAMES utf8mb4' # 客户端连接时自动设置
# 网络与安全
bind-address=0.0.0.0 # 监听所有IP(生产环境建议指定具体IP)
skip-name-resolve # 禁用DNS解析,提高性能
2025年06月12日
在我们的数字世界里,数据就像是企业的血液、个人记忆的载体。但凡事总有“搬家”的时候:新服务器上线了,老系统要升级了,或者干脆想把数据从测试环境挪到生产环境……这时,你是不是也曾对着海量的数据一筹莫展,甚至想过“复制粘贴”大法?别傻了,那只会让你陷入无尽的等待和崩溃的边缘!数据导入导出,这门看似简单的技术活,实则蕴藏着高效、安全的秘密。掌握了它,你的数据搬家之旅将告别繁琐,变得比你想象中更简单、更流畅!
2025年06月12日
在Windows系统中,MySQL服务器启动时最先读取的是my.ini这个配置文件。在Linux系统中,配置文件为my.cnf,其路径一般为/etc/my.cnf或/etc/mysql/my.cnf。