与“dba”相关的TAG标签
MySQL自动回滚死锁事务并报错1213,应用需捕获该错误、对竞争逻辑重试1–2次(指数退避),同时开启innodb_print_all_deadlocks记录全量死锁日志,并统一多表更新顺序以根治。
应优先在主表使用created_at和updated_at作为时间锚点,而非直接建历史表;需数据库层面自动维护时间戳,禁用应用层写入;关键状态变更须配history表记录完整快照;时间区间查询宜用valid_from/valid_to模式;is_deleted不可替代追溯能力。
PHP导入班级通信录慢的核心原因是逐行fgetcsv()+单条INSERT导致I/O与数据库连接双重放大;应改用LOADDATAINFILE或批量INSERT+事务控制,并注意编码转换、内存分片及secure_file_priv等配置细节。
MySQL用户host字段支持IP、域名、通配符%和_,但仅做字符串匹配且不支持CIDR;‘localhost’仅匹配Unixsocket,‘%’不匹配localhost;需配合bind-address、防火墙等网络配置才能生效。
千万级表直接DELETE易致日志暴涨、锁表、主从延迟甚至OOM;应分批删除(主键范围切片+显式COMMIT+限流)或重建表(导出保留数据+原子替换)。
不能。MySQLRouter仅是路由代理,不参与数据复制与主从同步,必须先配置好主从复制(如binlog复制或InnoDBCluster),Router才能基于元数据路由请求。
NOTNULL约束必须由数据库引擎强制执行才能真正起效,仅字段定义中声明不够;新增非空字段需配合DEFAULT或分步UPDATE+SETNOTNULL;须查系统表验证、警惕ORM绕过及批量导入跳过校验。
水平拆分适用于单表数据量达千万至亿级导致查询慢、主从延迟高、备份恢复慢等场景,需自行处理路由、聚合、全局统计及分布式ID;垂直拆分则按列分离冷热数据或更新频率差异大的字段,降低I/O与锁竞争,不改变查询逻辑;混合拆分常见但复杂度高,须统一元数据管理。
CHECK约束用于字段级业务规则校验,如年龄0、邮箱含@;外键保障引用完整性,需注意ONDELETE行为与索引要求;UNIQUE+NOTNULL可替代弱主键;应用层与数据库约束须并存,不可互相替代。
MySQL8.0+的authentication_policy不能真正启用标准MFA,它仅支持同一用户在不同连接上下文启用多个认证插件,并非联合验证;真正接近MFA的是密码+客户端证书组合,需手动配置REQUIRESUBJECT/ISSUER/CIPHER并强制SSL。
