Guan 发布的文章

SQLAlchemy 奇怪的查数据库行为


起步

进行数十亿数据压测时,测试环境发生了一个很奇怪的现象:在对 SQLAlchemy 查出的结果做遍历操作时,随着集合越大,遍历的时间跟着变长,是肉眼可见的变长。

根据现象,一位腾讯的程序员向我提出了疑问:会不会遍历过程中 SQLAlchemy 又去查询了数据库?


databases 连接 pg 查询时返回的数据类型


使用 databases 做异步查询的时候,sqlite、mysql 查询结果返回的都是元组类型,但是连接 pg 数据库的时候返回的是 Record 对象实例。

database = Database(
    'postgresql://postgres:password@192.168.111.136:54321/postgres', 
    min_size=5, 
    max_size=20
)
await database.connect()
query = "SELECT score, name, id FROM HighScores"
rows = await database.fetch_all(query=query)  # 查询
print(rows)  # 打印结果
await database.disconnect()

输出:

[<databases.backends.postgres.Record object at 0x000001BADB1E2A08>]


Rust 中的 mod (模块)


起步

初看《Rust 程序设计语言》第七章的模块管理时,完全有不知所云之感。看完就“懵”住,也不晓得 mod 要怎么用。上 B 站找相关视频,稍解惑,却未细讲单个文件如何拆分到多个文件。最后在 github 找到 rust 语言编写的项目,方如梦初醒。

我很喜欢这种一致性设计,也就简单说一下。


Manjaro xfce 合盖不关屏幕


最近买了显示器,macbook pro 的扩展坞却没买,干脆把大学时的电脑利用起来。

我的需求就是:笔记本主机一般的存在,放书桌下边,外接显示器;笔记本需要合盖。

一阵搜索后,得到的解决都是在 /etc/systemd/logind.conf 文件中,要么修改 HandleLidSwitch,要么修改 HandleLidSwitchDocked,再或者是 LidSwitchIgnoreInhibited,结果都不生效。这或许是桌面系统不同的缘故?