postgis数据库优化_postgresql优化

一个优化的SQL:

SELECT order_date,

order_source,

SUM(commodity_num) num,

SUM(actual_charge) charge

FROM (

SELECT to_char(oc.create_date, 'yyyyMMdd') AS order_date,

(CASE

WHEN oo.event_type = 'ONLINE_COMMODITY_ORDER' THEN

'线上'

ELSE

'线下'

END) order_source,

oc.commodity_num,

oc.actual_charge actual_charge

FROM ord.ord_commodity_hb_2017 AS oc, ord.ord_order_hb_2017 AS oo

WHERE oc.order_id = oo.order_id

AND oc.op_type = 3 -- 3个值 ,3->5000 大概1/20的数据

AND oc.create_date BETWEEN '2017-02-05' AND '2017-12-07' -- 无用

AND oc.corp_org_id = 106 -- 无用

AND oo.trade_state = 11 -- 3个值 11 --> 71万行,一半数据

AND oo.event_type IN (values('ONLINE_COMMODITY_ORDER'),

('USER_CANCEL'),

('USER_COMMODITY_UPDATE')) -- 大概1/10 数据

ORDER BY oc.create_date -- 如果业务不强制,最好去掉排序,如果不能去掉,最好等过滤数据量到尽量小时再排序

) T

GROUP BY order_date, order_source;

下面默认以postgresql为例:

一、排序:

1. 尽量避免

2. 排序的数据量尽量少,并保证在内存里完成排序。

(至于具体什么数据量能在内存中完成排序,不同数据库有不同的配置:

oracle是sort_area_size;

postgresql是work_mem (integer),

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要将 AIS 数据加载到 PostGIS 数据库中,您需要以下步骤: 1. 安装和配置 PostgreSQLPostGIS:确保您的系统中已经安装了 PostgreSQLPostGIS。 2. 创建数据库:在 PostgreSQL 中,创建一个新的数据库,以便存储 AIS 数据。 3. 创建数据表:在新创建的数据库中,创建数据表,其中包含 AIS 数据的字段。 4. 加载数据:使用 COPY 命令或 pgAdmin 等工具,将 AIS 数据加载到数据表中。 5. 配置空间支持:在数据表中,指定一个字段为空间字段,并为其设置 PostGIS 类型。 6. 索引优化:使用 GIST 索引或其他类型的索引优化查询的效率。 如果您需要更详细的信息,请参阅 PostgreSQLPostGIS 的文档。 ### 回答2: 将 AIS(Automatic Identification System)数据加载到 PostGIS 数据库中,需要以下步骤: 1. 创建 PostGIS 数据库:首先,在 PostGIS 中创建一个新的数据库或使用现有的数据库,确保已安装 PostGIS 扩展。 2. 准备 AIS 数据:获取 AIS 数据,可以是标准 AIS 文本文件、CSV 文件或其他格式。确保数据按照规定的格式和字段排列。 3. 创建数据库表:在 PostGIS 数据库中创建一个新的表,以容纳 AIS 数据。表应包含与 AIS 数据相对应的适当字段,如经度、纬度、时间等。 4. 导入 AIS 数据:使用适当的工具(如 ogr2ogr、pgloader 或 psql 命令)将 AIS 数据导入 PostGIS 数据库中的 AIS 表。确保数据正确地映射到对应的字段。 5. 空间索引:为 AIS 数据表创建空间索引以提高查询性能。使用 PostGIS 提供的函数和命令创建适当的索引。 6. 验证导入的数据:运行一些查询来验证 AIS 数据是否正确加载到 PostGIS 数据库中。例如,可以查询特定时间范围内的 AIS 数据点。 7. 数据更新和维护:根据需要,定期更新 AIS 数据,并根据需要维护数据库表和索引。可以编写脚本或使用 PostGIS 的功能来自动化此过程。 8. 数据查询和分析:使用 PostGIS 提供的空间函数和查询语言,进行 AIS 数据的地理空间分析和查询。例如,可以查询在某个区域内的所有 AIS 船只数据。 通过以上步骤,可以将 AIS 数据有效地加载到 PostGIS 数据库中,并使用 PostGIS 的功能对数据进行查询、分析和可视化。 ### 回答3: 将AIS(船舶自动识别系统)数据加载到PostGIS数据库中可以通过以下步骤完成。 首先,确保已经安装并配置好PostGIS数据库。PostGIS是一个扩展的关系型数据库管理系统,用于对地理空间数据进行存储和查询。 其次,准备要加载的AIS数据。AIS数据包含船舶的位置、航速、航向等信息。通常,AIS数据以文件的形式提供,如CSV(逗号分隔值)或GPX(地理位置交换格式)。 然后,创建一个适当的数据库表来存储AIS数据。可以使用PostGIS提供的空间数据类型(如POINT、LINESTRING、POLYGON等)来存储地理空间信息。可以根据AIS数据的结构来定义表的字段,如船舶ID、时间戳、位置等。 接下来,使用相关的工具或编程语言将AIS数据加载到PostGIS数据库中。可以使用PostGIS提供的命令行工具(如shp2pgsql)或编程语言(如Python中的psycopg2库)来实现数据加载。这些工具和库提供了易于使用的API,可以将AIS数据转换为适应PostGIS数据库表的SQL语句,然后执行这些SQL语句以插入数据。 最后,验证数据加载的结果。可以通过查询数据库表来检查已加载的AIS数据是否正确。可以使用PostGIS提供的空间查询功能(如ST_Intersects、ST_Distance等)来查询和分析AIS数据。 总的来说,将AIS数据加载到PostGIS数据库中需要安装和配置PostGIS,准备数据,创建数据库表,使用工具或编程语言加载数据,并验证加载结果。这样就可以在PostGIS数据库中方便地存储和查询AIS数据了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值