
MySQL
文章平均质量分 88
ifanatic
垂直领域:基因检测系统架构师、基因检测领域技术负责人
技术专长:
- 基因报告高并发架构(Go/Python/PHP)|容器化优化
- 生物数据复杂处理|小程序/公众号深度开发 | 专注2B2C报告系统开发
- 曾优化报告生成架构,PDF及在线报告速度提升10倍
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[每周一更]-(第145期):分表数据扩容处理:原理与实战
分表扩容策略与实现 随着数据量增长,单表性能瓶颈日益凸显,分表成为水平扩展的常见方案。本文探讨了分表扩容的核心要点: 分表时机 单表数据达千万级 查询/写入性能明显下降 特定表成为访问瓶颈 分表策略 范围分表:按时间/ID段划分,易维护但可能数据不均 哈希分表:数据分布均匀,但扩容复杂 业务维度分表:适合多租户系统 扩容实现 通过路由层(如示例中的ShardRouter)动态计算目标表 数据迁移采用分批处理(如示例迁移脚本) 支持新旧表并行,确保平滑过渡 关键设计 抽象路由逻辑,降低业务耦合 监控分表热点,原创 2025-06-14 22:19:41 · 1352 阅读 · 1 评论 -
[每周一更]-(第142期):MySQL执行链路深度解析:从SQL语句到结果返回的完整旅程
MySQL作为全球最流行的开源关系型数据库,其高效执行背后隐藏着复杂的内部机制。本文深入剖析了MySQL的执行链路,从客户端连接、SQL解析、查询优化到执行计划的执行和结果返回,揭示了MySQL的内部工作原理。MySQL采用客户端/服务器架构,通过线程池优化并发性能。SQL语句经过词法、语法和语义分析后,由优化器生成执行计划,执行引擎根据计划调用存储引擎API完成数据操作。InnoDB作为常用存储引擎,通过缓冲池和MVCC机制提升性能。最终,结果集通过协议包返回客户端,完成整个查询过程。理解MySQL的执行原创 2025-05-09 21:50:07 · 660 阅读 · 0 评论 -
[每周一更]-(第138期):MySQL 子查询详解:原理、应用及优化方案
是指嵌套在另一个 SQL 语句中的查询,它的执行结果可以作为主查询的输入。子查询可以用于。原创 2025-04-04 15:57:59 · 722 阅读 · 0 评论 -
[数据库]-MySQL聚合函数从having开始
聚合函数(Aggregate Functions)是关系型数据库(如 MySQL、PostgreSQL、Oracle)中用于对一组值执行计算并返回单一结果的函数。:聚合查询会遍历大量数据,为了提高性能,可以基于索引优化,尤其是范围查询或分组计算时。窗口函数将聚合和行级别数据结合,使得每行都可以保留原始值,同时计算某些聚合结果。针对大规模数据量,可以使用分片聚合或分步聚合的方式,提高性能。将数据按总数划分为百分比分组,可以帮助分析数据的分布情况。:计算某列的平均值,例如平均薪资、平均评分。原创 2024-12-20 13:56:17 · 979 阅读 · 0 评论 -
[每周一更]-(第122期):模拟面试|数据库面试思路解析
两阶段提交协议(2PC)**是一种经典的分布式事务管理协议,分为**准备阶段和提交阶段。准备阶段:事务协调者请求所有分布式节点是否可以提交事务,所有节点预写日志并锁定资源,向协调者返回准备就绪。提交阶段:协调者根据返回状态,统一决定是提交还是回滚。缺点阻塞性:在等待协调者决定时,资源被锁定。单点故障:协调者若发生故障,会导致整个事务阻塞。一致性不足:若在提交阶段网络故障,可能出现部分提交,破坏一致性。三阶段提交协议(3PC)*是在两阶段的基础上增加一个阶段以减少阻塞,分为*准备阶段预提交阶段。原创 2024-11-08 14:34:06 · 1235 阅读 · 0 评论 -
[每周一更]-(第99期):MySQL的索引为什么用B+树?
B+树通过将数据存储在叶子节点并使用链表连接叶子节点,实现了高效的范围查询和排序操作,同时减少了磁盘I/O操作的次数,提供了稳定的查询性能。理解为什么MySQL选择使用B+树而不是B树或其他树结构,首先需要深入了解B+树和B树的特性及其在数据库检索中的表现。B+树:在B树的基础上,将非叶节点改造为不存储数据的纯索引节点,进一步降低了树的高度;红黑树:通过舍弃严格的平衡和引入红黑节点,解决了AVL旋转效率过低的问题,但是在磁盘等场景下,树仍然太高,IO次数太多;各种树解决的问题以及面临的新问题。原创 2024-05-31 23:23:49 · 1325 阅读 · 0 评论 -
Docker安装MySQL
解决方案:这个错误通常出现于数据库表迁移或创建的过程中,是因为 ‘created_at’ 字段的默认值不符合数据库引擎的规定。在 MySQL 5.7 之后,数据库默认配置的 sql_mode 中包含了 NO_ZERO_IN_DATE 和 NO_ZERO_DATE 模式,这会导致对于日期字段的默认值要求更为严格。至此MySQL安装完成,但是本地直接使用mysql命令连接是不行的,应该mysql是安装在容器中,需要通过。navicat等工具远程连接即可;其他版本的安装,指定具体的mysql的镜像版本号就行;原创 2024-01-30 18:14:25 · 578 阅读 · 0 评论 -
Mysql的骚操作说明
GROUP_CONCAT:该函数将分组中的非NULL值串联起来称为一个字符串。如果分组中的某个值为NULL,而串联的结果为NULL。记录些不常用,但是很实用的操作,旨在在MySQL语言能解决的批量操作的问题,不动用其他动态或静态语言的辅助。CONCAT(str1,str2):返回由连接参数产生的字符串。可能有一个或多个参数。REPLACE()函数用新的子字符串替换字符串中所有出现的子字符串。注意:此函数执行区分大小写的替换。原创 2024-01-23 22:36:30 · 1258 阅读 · 0 评论 -
[每周一更]-(第2期):MySQL中数据表名称大小写区分设置及说明(对比版本优势)
1)linux下:数据库名与表名是严格区分大小写的;表的别名是严格区分大小写的;列名与列的别名在所有的情况下均是忽略大小写的;变量名也是严格区分大小写的;2)windows下:都不区分大小写3)Mac OS下(非UFS卷):都不区分大小写参数值 解释为了避免大小写引发的问题,一种推荐的命名规则是:在定义数据库、表、列的时候全部采用小写字母加下划线的方式,不使用任何大写字母。在任何系统中可以使用lower_case_tables_name=1。使用该选项的不利之处是当使用SHOW TABLES或S原创 2022-07-08 23:45:26 · 1456 阅读 · 0 评论