代码改变世界

min_examined_row_limit 对慢查询日志的影响

2025-01-20 20:49 by abce, 7 阅读, 0 推荐, 收藏, 编辑
摘要:执行了以下一个很慢的 SQL,但是在慢查询日志中却没有发现对应的 SQL 语句。 > select count(*) from myabc_abcde_expo_vv; + + | count(*) | + + | 509600169 | + + 1 row in set (3 min 3.76 s 阅读全文

PostgreSQL 数据库文件布局

2025-01-14 18:35 by abce, 17 阅读, 0 推荐, 收藏, 编辑
摘要:这里需要关注的名词有:relation、fork、filenode、segment等。 传统方式上,数据库群集使用的配置文件和数据文件一起存储在群集的数据目录中,通常称为 PGDATA。PGDATA 的常用位置是 /var/lib/pgsql/data。 PGDATA 目录包含几个子目录和控制文件。 阅读全文

PostgreSQL的TOAST表

2025-01-14 18:34 by abce, 5 阅读, 0 推荐, 收藏, 编辑
摘要:TOAST 管理代码可识别四种不同的策略,用于在磁盘上存储可以被TOAST 的列。 仅当要存储在表中的行值宽于TOAST_TUPLE_THRESHOLD字节(通常为2kB)时,才会触发TOAST管理代码。TOAST代码将压缩和/或移动字段值out-of-line,直到行值短于TOAST_TUPLE_ 阅读全文

PostgreSQL 的表空间

2025-01-09 14:41 by abce, 29 阅读, 0 推荐, 收藏, 编辑
摘要:PostgreSQL 中的表空间允许数据库管理员在文件系统中定义存储代表数据库对象的文件的位置。表空间一旦创建,就可以在创建数据库对象时通过名称来引用。 通过使用表空间,管理员可以控制 PostgreSQL 的磁盘布局。这至少在以下两个方面很有用。首先,如果初始化群集的分区或卷空间耗尽且无法扩展,可 阅读全文

MySQL 的内部临时表

2025-01-03 20:04 by abce, 37 阅读, 0 推荐, 收藏, 编辑
摘要:在有些情况下,MySQL Server 会在处理语句时创建内部临时表。用户无法直接控制这种情况何时发生。 通常情况下,内部临时表首先保留在内存中,以获得最佳查询性能。为避免内存分配过多,MySQL 提供了参数,可用于设置内存限制。当达到该限制时,内部临时表就会溢出到磁盘存储。MySQL 可能会为内存 阅读全文

如何在 Python 中使用 generators 和 yield

2025-01-03 20:02 by abce, 36 阅读, 0 推荐, 收藏, 编辑
摘要:是否曾经需要处理一个大到足以耗尽机器内存的数据集?或者有一个复杂的函数,每次调用时都需要维护内部状态,但这个函数太小,不适合创建自己的类。在这些情况以及更多情况下,Generators 和 yield 语句都能帮上忙。 使用 generator generator 函数是一种返回懒惰迭代器的特殊函数 阅读全文

使用 Python 的 yield 创建生成器函数

2025-01-03 20:02 by abce, 42 阅读, 0 推荐, 收藏, 编辑
摘要:Python 中的 yield 关键字将常规函数转换为生成器,它可以按需生成一系列值,而不是一次性计算所有值。 Python 函数并不总是有返回语句。生成器函数是用 yield 关键字代替 return 的函数。这些函数产生生成器迭代器,它是表示数据流的对象。迭代器所代表的元素只有在需要时才会被创建 阅读全文

Python 闭包:常见用例和示例

2024-12-17 11:41 by abce, 67 阅读, 0 推荐, 收藏, 编辑
摘要:在 Python 中,闭包通常是定义在另一个函数内部的函数。这个内部函数抓取在其作用域外定义的对象,并将它们与内部函数对象本身关联起来。由此产生的组合称为闭包。 闭包是函数式编程语言的一个常见特性。在 Python 中,闭包非常有用,因为它支持创建基于函数的装饰器,而装饰器是一种强大的工具。 了解 阅读全文

Python 回调函数示例

2024-12-17 11:40 by abce, 46 阅读, 0 推荐, 收藏, 编辑
摘要:回调是一段作为参数传递给其他代码的代码,通常以函数或方法的形式。当其他代码需要运行回调时,就会这样做。回调函数是一个作为参数传递给其他函数的函数,并在方便的时候被 “回调”。它通常用于在模拟或处理任务结束时执行操作,例如在事件驱动编程中。回调函数是 Python 编程语言的基本组成部分,它允许开发人 阅读全文

在 MongoDB 分片集群上检查索引的一致性

2024-12-10 13:41 by abce, 38 阅读, 0 推荐, 收藏, 编辑
摘要:在 MongoDB 分片集群中,各分片之间索引分布不一致的情况比你想象的要常见,这是因为用户不使用 MongoS 而是直接在分片中创建索引。 在块迁移过程中,由于索引不匹配,系统无法在分片间传输数据,从而导致迁移失败。 发生这种情况时,分片日志中的典型错误信息可能如下所示: {"t":{"$date 阅读全文