-
Redis事务通过将多个命令打包一次性执行,提供有限的原子性和隔离性。其核心实现步骤为:1.MULTI开启事务;2.命令入队但不立即执行;3.EXEC按顺序执行队列中的命令并返回结果;4.DISCARD取消事务。WATCH用于监控key以实现乐观锁。Redis事务无法完全满足ACID特性,原子性仅保证命令全执行或全不执行,但不支持回滚;一致性依赖客户端处理;隔离性有限;持久性取决于持久化策略。事务不支持回滚的原因在于设计哲学追求高效简单。执行失败时需根据EXEC返回值判断原因并重试或放弃。与Lua脚本相比
-
MySQL系统变量是控制服务器行为的配置选项,分为全局变量和会话变量。1.全局变量影响整个服务器,查看使用SHOWGLOBALVARIABLES或SELECT@@global.variable_name;2.会话变量仅影响当前连接,查看使用SHOWSESSIONVARIABLES或SELECT@@session.variable_name;3.修改全局变量需用SETGLOBAL并有SUPER权限,修改后重启失效,要永久生效需改配置文件;4.修改会话变量使用SETSESSION,无需特殊权限;5.修改后可用
-
<p>MySQL的基础命令包括:1.连接服务器:mysql-uroot-p;2.创建数据库:CREATEDATABASEmydatabase;3.选择数据库:USEmydatabase;4.创建表:CREATETABLEusers(idINTAUTO_INCREMENTPRIMARYKEY,nameVARCHAR(100)NOTNULL,emailVARCHAR(100)NOTNULLUNIQUE);5.插入数据:INSERTINTOusers(name,email)VALUES('JohnD
-
MySQL数据库备份是为数据创建副本以防止丢失并确保可恢复。1.逻辑备份(如mysqldump)适合小数据量或低恢复要求场景,导出SQL语句便于迁移和转换,但速度较慢;2.物理备份(如xtrabackup)适合大数据量、高恢复时效需求,直接复制物理文件速度快但移植性差;3.制定备份策略需考虑频率、类型、存储与验证,常见方案为每周全备加每日增备,并定期测试恢复流程以确保有效性。选择合适方式应综合数据量、RTO、RPO及资源限制等因素。
-
MySQL实现读写分离的核心逻辑是将写操作(INSERT、UPDATE、DELETE)发到主库,读操作(SELECT)分散到从库。其原理基于主从复制机制,主库处理写请求并将数据变更同步至从库,应用层或中间件负责路由请求;实现方式主要有两种:一是手动编码控制,适合小项目,如通过MyBatis拦截器切换数据源;二是使用中间件自动分流,适合中大型项目,可统一处理连接池、负载均衡、故障转移等问题;常用的中间件包括MyCat、ShardingSphere、MaxScale和ProxySQL,各自具备不同特点和适用场
-
调大hash-max-ziplist-entries内存不降反升,因ziplist启用需同时满足entries、value长度及数据紧凑三条件;单个value超hash-max-ziplist-value即退化为hashtable。
-
MySQL JSON_STORAGE_FREE 只有在 JSON 列通过 JSON_SET、JSON_REPLACE 或 JSON_REMOVE 进行合适的部分更新后,才可能返回正数。本文用可复用的 SQL 说明如何判断空闲空间、为什么结果为 0,以及如何结合 JSON_STORAGE_SIZE 排查。
-
XACK 只清理指定消费组的待处理记录,不删除流正文。本文给出 Redis Streams 消费与确认示例,说明返回零、重复确认、失败重试及超时认领的处理边界。
-
MySQL 存储过程需要把参数校验失败和底层异常清楚地交给调用方时,可以用 SIGNAL 设置 SQLSTATE、MESSAGE_TEXT 与 MYSQL_ERRNO。本文从最小示例、handler、诊断区和排查边界说明怎样建立稳定的错误契约。
-
MySQL 分区表是否真的减少了扫描范围,不能只看查询能否返回结果,而要看 EXPLAIN 的 partitions 列。本文用 RANGE 分区示例说明如何对照分区定义、WHERE 条件和执行计划,区分命中一个分区、命中多个目标分区与没有发生分区裁剪。
-
MySQL JSON 列不能直接按普通列建立索引时,可以用生成列提取固定路径,再按明确的数据类型建立二级索引。本文给出建表、改表、查询和适用边界。
-
MySQL 的 JOIN_FIXED_ORDER 与 STRAIGHT_JOIN 都能固定连接顺序,但影响范围并不相同。本文比较两种写法对查询块、IN/EXISTS 半连接转换和排障验证的影响,并给出更稳妥的提示组合。
-
MySQL CHECK 在表达式为 TRUE 或 UNKNOWN 时通过,范围判断不能单独禁止 NULL。通过可选、必填和条件必填三个原创表结构,说明 NOT NULL、IS NOT NULL 与执行状态的配合。
-
一、MySQL的dd表介绍
MySQL的dd表是用来存放表结构和各种建表信息的,客户端建的表都存在mysql.table和mysql.columns表里,还有一个表mysql.column_type_elements比较特殊,用来存放SET和ENUM类型的字段集合值
-
我们在使用SQL语句查询表数据时,提前用explain进行语句分析是一个非常好的习惯。通过explain输出sql的详细执行信息,就可以针对性的进行sql优化。今天我们来分析一下,在explain中11种不同type代