摘要:
执行了以下一个很慢的 SQL,但是在慢查询日志中却没有发现对应的 SQL 语句。 > select count(*) from myabc_abcde_expo_vv; + + | count(*) | + + | 509600169 | + + 1 row in set (3 min 3.76 s 阅读全文
随笔档案-2025年01月
PostgreSQL 数据库文件布局
2025-01-14 18:35 by abce, 65 阅读, 收藏, 编辑
摘要:
这里需要关注的名词有:relation、fork、filenode、segment等。 传统方式上,数据库群集使用的配置文件和数据文件一起存储在群集的数据目录中,通常称为 PGDATA。PGDATA 的常用位置是 /var/lib/pgsql/data。 PGDATA 目录包含几个子目录和控制文件。 阅读全文
PostgreSQL的TOAST表
2025-01-14 18:34 by abce, 39 阅读, 收藏, 编辑
摘要:
TOAST 管理代码可识别四种不同的策略,用于在磁盘上存储可以被TOAST 的列。 仅当要存储在表中的行值宽于TOAST_TUPLE_THRESHOLD字节(通常为2kB)时,才会触发TOAST管理代码。TOAST代码将压缩和/或移动字段值out-of-line,直到行值短于TOAST_TUPLE_ 阅读全文
PostgreSQL 的表空间
2025-01-09 14:41 by abce, 46 阅读, 收藏, 编辑
摘要:
PostgreSQL 中的表空间允许数据库管理员在文件系统中定义存储代表数据库对象的文件的位置。表空间一旦创建,就可以在创建数据库对象时通过名称来引用。 通过使用表空间,管理员可以控制 PostgreSQL 的磁盘布局。这至少在以下两个方面很有用。首先,如果初始化群集的分区或卷空间耗尽且无法扩展,可 阅读全文
MySQL 的内部临时表
2025-01-03 20:04 by abce, 85 阅读, 收藏, 编辑
摘要:
在有些情况下,MySQL Server 会在处理语句时创建内部临时表。用户无法直接控制这种情况何时发生。 通常情况下,内部临时表首先保留在内存中,以获得最佳查询性能。为避免内存分配过多,MySQL 提供了参数,可用于设置内存限制。当达到该限制时,内部临时表就会溢出到磁盘存储。MySQL 可能会为内存 阅读全文
如何在 Python 中使用 generators 和 yield
2025-01-03 20:02 by abce, 46 阅读, 收藏, 编辑
摘要:
是否曾经需要处理一个大到足以耗尽机器内存的数据集?或者有一个复杂的函数,每次调用时都需要维护内部状态,但这个函数太小,不适合创建自己的类。在这些情况以及更多情况下,Generators 和 yield 语句都能帮上忙。 使用 generator generator 函数是一种返回懒惰迭代器的特殊函数 阅读全文
使用 Python 的 yield 创建生成器函数
2025-01-03 20:02 by abce, 75 阅读, 收藏, 编辑
摘要:
Python 中的 yield 关键字将常规函数转换为生成器,它可以按需生成一系列值,而不是一次性计算所有值。 Python 函数并不总是有返回语句。生成器函数是用 yield 关键字代替 return 的函数。这些函数产生生成器迭代器,它是表示数据流的对象。迭代器所代表的元素只有在需要时才会被创建 阅读全文