我已经尝试了两天的查询和索引以找到最快的解决方案,直到今天我才发现感谢这个答案,使用“ analyze $table_name;
”命令EXPLAIN
然后查询在添加或删除索引后完全更改。
我的工作包括:
- 使用 Potgresql 13
- 使用与生产数据库尽可能相似的数据库,无论是在数据类型还是数量方面
- 编写将由后端语言生成和使用的查询
- 尝试各种索引(同时我也在学习 Postgresql)
- 添加一个索引并尝试 EXPLAIN
Sequential Scan
尽管有新索引,我仍然看到- 所以由于没有使用索引,我继续更好地理解并找到另一个解决方案
- 除了今天,我意识到使用“
analyze $table_name;
”来更新 Postgresql 查询计划就足够了
问题
这是我必须做的事情吗?
我可以自动设置它,以便在每次修改索引或正在开发的结构后自动分析它吗?
此分析是否在生产中自动执行?