postgresql - postgresql 中有没有办法在选择中使用动态表分区名称?
问题描述
出于性能原因,我将非常大的表按日期划分为四分之一块。我想编写使用动态分区名称的 sql 查询,根据哪个是最新的。有什么办法可以写这个吗?
例子:
分区名称如下所示:
schema.table_2020_q4
schema.table_2020_q3
schema.table_2020_q2
schema.table_2020_q1
schema.table_2019_q4
schema.table_2019_q3
...
今天是 2020-07-23 = 2020 Q3,所以我的 sql 会是这样的:
select * from schema.table_2020_q3
当应用程序将在 2020 年 10 月 1 日运行此查询时,它需要是:
select * from schema.table_2020_q4
谢谢
解决方案
您的表按该日期编制索引,因此将日期作为WHERE
表达式的一部分(以您用于分区的相同格式)并且数据库应该自动执行此操作。
推荐阅读
- ios - 如何从 UITableView 的多个部分中选择多行?
- docker - Jenkins管道安装和使用yarn
- google-maps - 如何比较谷歌地图的两条折线?
- java - 验证约束仅适用于一个领域。Bean 验证 API
- javascript - 如何将数组中的值(即对象数组内部)与对象的属性进行比较?
- c++ - 在抛出 'cl::sycl::detail::exception_implementation<(cl::sycl::detail::exception_types)9>' 的实例后调用终止
- html - CSS 屏幕方向 WebApp 旋转
- java - 在 Java 中删除多列 Spark DataFrame
- haskell - GHC 是否可以找到所有使用偏函数的地方?
- gmail - 是否可以在我的网站上显示用户的 Gmail 通知?