我正在努力将我的应用程序从MySQL迁移到PgSQL,因为我不喜欢MySQL默认的utf-8 3字节字符串限制。当然我可以将字符集从utf8更改为utf8bm4,但还有其他一些我喜欢的PgSQL(例如GEO空间支持)。总而言之,我虽然迁移到Postgres将是前进的方式。
然而,其中一个主要查询在Postgres然后在MySQL上慢了大约10倍。
这是Postgres中解释的查询: https://explain.depesz.com/s/FC5
这与MySQL的查询相同,但MySQL变体似乎在+/- 100ms内执行,而PgSQL变体在同一个表上大约需要1秒(将mysql表复制到postgres https://github.com/philipsoutham/py-mysql2pgsql )
请注意我正在使用Django ORM,Django为我创建了查询。