
MySQL那些事
文章平均质量分 92
普通网友
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
一文讲清楚 MySQL 事务隔离级别和实现原理
读未提交:最低隔离级别,可能导致脏读。读已提交:避免了脏读,但可能导致不可重复读。可重复读:避免了脏读和不可重复读,但可能导致幻读。串行化:最高的隔离级别,避免了所有并发问题,但性能最差。MySQL 通过 MVCC 和锁机制来实现这些隔离级别,开发者可以根据业务需求选择合适的隔离级别。原创 2025-03-03 23:54:58 · 769 阅读 · 0 评论 -
PHP异步非阻塞MySQL客户端连接池
AMPHP 是一个事件驱动的异步 PHP 库,旨在使 PHP 开发者能够轻松编写高并发、异步、非阻塞的代码。它基于协程,通过用户态的 PHP 实现了并发执行。AMPHP 的优势在于它不依赖于 PHP 的多线程支持或扩展,所有异步操作都基于事件循环和协程。事件循环:事件循环机制(如ReactPHP)用于管理异步 I/O 操作。协程:利用Fiber(PHP 8.1 及以上)或其他协程库,在不阻塞当前线程的情况下异步执行任务。连接池:通过。原创 2025-01-20 21:28:27 · 1107 阅读 · 0 评论 -
快速的往MySQL插入100万条数据,用PHP如何做 ?
批量插入:将多条数据合并成一个INSERT语句,减少数据库交互次数。禁用事务提交:关闭自动提交,使用事务提交一次性提交大量数据。使用:这是最快的插入方法,适用于大批量数据的导入。优化 MySQL 配置:确保 MySQL 的配置适合高效处理大量数据插入。通过这些技术,你可以显著提高大规模数据插入的效率。原创 2025-01-06 20:54:16 · 997 阅读 · 0 评论 -
SQL 查询语句先执行 SELECT?兄弟你认真的么?
理解。原创 2025-01-04 12:13:31 · 981 阅读 · 0 评论 -
程序员如何培养技术领导力?
培养技术领导力是一个长期且综合的过程,涉及到技术能力、团队管理、战略思维、跨部门协作等多方面的素质。程序员可以通过不断提升技术深度与广度、加强沟通与团队协作、参与架构设计与决策、培养团队成员并激励创新等方式来逐步成长为一名出色的技术领导者。技术领导力的核心是从实际问题出发,综合运用技术与管理能力,带领团队解决复杂的业务挑战,推动技术的不断发展与创新。原创 2025-01-03 00:12:25 · 1109 阅读 · 0 评论 -
导致MySQL索引失效的原因有哪些?
原因解决方案使用!或<>操作符避免使用!或<>,改用或NOT IN来优化查询使用OR连接多个条件使用UNION替代OR,避免多个条件查询对索引列进行函数操作避免在索引列上使用函数,考虑使用计算列使用LIKE前置通配符避免前置通配符,或使用全文索引数据类型不匹配确保查询时条件的数据类型与索引字段一致使用IS NULL或对NULL值列进行优化,避免查询大量NULL值索引选择性差创建更高选择性的索引或复合索引没有合适的索引根据查询需求创建适当的索引使用DISTINCT。原创 2024-12-31 16:30:16 · 1074 阅读 · 0 评论 -
你知道MySQL索引为什么要选择B+树吗
高效的查询性能查找、插入、删除操作的时间复杂度为O(log n)。对于范围查询和排序查询具有天然的优势。优化磁盘 I/O节点较小,能够在内存中存储更多的索引项,减少磁盘访问。支持范围查询叶子节点通过链表连接,可以高效地执行范围查询。支持顺序遍历叶子节点链表结构使得顺序访问非常高效,适合排序和聚合查询。平衡性和稳定性B+ 树是自平衡的,能够在大规模数据下保持高效性能。原创 2024-12-18 15:48:20 · 594 阅读 · 0 评论 -
SQL 查询语句先执行 SELECT?兄弟你认真的么?
理解。原创 2024-12-17 15:47:45 · 1020 阅读 · 0 评论 -
MySQL表自增id溢出的故障复盘,你是如何解决与监控的
如果数据表中的数据量极大,单一表的自增 ID 很容易达到上限,可以考虑将数据进行分库分表,以减少单个表的数据量和自增 ID 的增长速度。类型的自增字段时,如果数据量极大,达到自增字段的最大值时,就会导致溢出。通过这些措施,能够有效地避免 MySQL 自增 ID 溢出的问题,并在出现问题时能够快速响应并进行解决。例如,可以通过对数据进行按时间、按用户等维度的分表,从而避免某一张表的自增 ID 达到上限。通过删除不需要的数据,清理表中的记录,以释放自增 ID 空间。最常见的解决方案是将自增字段的数据类型从。原创 2024-12-14 15:08:13 · 992 阅读 · 0 评论 -
MySQL的各种锁(表锁,行锁,悲观锁,乐观锁,间隙锁,死锁) 怎么用
表锁(Table Lock):锁住整张表,影响性能较大,适用于低并发的场景。行锁(Row Lock):锁住某一行数据,性能较好,适用于高并发事务。悲观锁(Pessimistic Lock):假设会发生并发冲突,在操作数据时加锁,适用于高并发数据一致性要求高的场景。乐观锁(Optimistic Lock):假设不会发生并发冲突,通过版本号或时间戳检查是否有数据变化,适用于读多写少的场景。间隙锁(Gap Lock):锁住某个范围,但不包括边界行,适用于保证范围内数据一致性的场景。原创 2024-12-13 14:50:10 · 1123 阅读 · 0 评论 -
彻底搞清分库分表(垂直分库,垂直分表,水平分库,水平分表)
垂直分库:将不同业务模块的数据分散到不同的数据库中。适用于模块间数据访问没有太多交集的场景。垂直分表:将一张表的不同列分散到不同的表中,适用于表的列数较多,且有些列不常访问的场景。水平分库:将一张表的不同数据行分散到不同的数据库中,适用于数据量过大且访问量很高的情况。水平分表:将一张表的不同数据行分散到不同的表中,通常用于大数据量的表,按时间或范围拆分数据。分库分表策略选择的依据是数据量、查询频率、业务需求等。根据具体场景选择合适的分库分表方案,有助于提高数据库的性能和可扩展性。原创 2024-12-03 22:47:52 · 906 阅读 · 0 评论 -
MySQL常见函数,你都用过哪些呢 ?
这些函数在 SQL 查询中非常常用,能够帮助我们处理字符串、日期、数字和数据的聚合操作。掌握这些基本的 MySQL 函数,能使得你在数据处理、报告生成和性能优化等方面更加高效。原创 2024-11-18 16:32:17 · 389 阅读 · 0 评论 -
MySQL缓存参数如何优化与表结构如何优化才算是最大性能的优化
为了最大化 MySQL 的性能,优化缓存参数和表结构是非常重要的。MySQL 提供了多个缓存参数来提高查询效率,而表结构优化可以减少磁盘 I/O,改善查询响应时间。下面我将分别给出如何优化缓存参数以及表结构的详细建议和代码示例。原创 2024-11-07 01:13:24 · 1354 阅读 · 0 评论 -
MySQL中distinct与group by之间的性能进行比较
在 MySQL 中,DISTINCT和GROUP BY都是用于去重或汇总数据的常用 SQL 语法。尽管它们在某些情况下能产生相同的结果,但它们的内部工作方式和性能表现可能有所不同。理解这两者的差异,对于选择正确的语法非常重要,尤其是在处理大量数据时。原创 2024-11-07 01:10:53 · 1384 阅读 · 0 评论