优化堆栈的数据库设计,如插入和选择模式?

时间:2017-09-01 04:26:11

标签: database postgresql optimization database-design

我有一个任务,我需要设计一个有效的表(不限于sql但我目前正在使用postgresql),它具有以下结构

id_table
    latest_update_id
    product_id
    publish_date

product_meta_table
    latest_update_id
    product_id
    meta_related_info1
    meta_related_info2
    ...etc

product_table
    latest_update_id
    product_id
    note_related_info1
    note_related_info2
    ....etc

每个product_id可以有多个latest_update_id,因为它每10分钟会多次更新。

每个product_idlatest_update_id组合将有1个product_meta_table条目和多个product_table条目。

选择模式基本上是以下

SELECT *
FROM product_table
WHERE latest_update_id = (SELECT latest_update_id FROM id_table WHERE product_id = 'some_id' ORDER BY publish_date DESC LIMIT 1 )
AND product_id = 'some_id'

选择产品的最新信息。

我计划为所有三个表编制latest_update_id product_idpublish_date

我们计划每秒进行10-50k插入,我需要保留历史数据,因为其他团队需要对其进行数据分析。

这是一个好设计吗?是否有其他机会可以优化插入和读取的速度?

我使用完全错误的技术吗?

任何帮助都将不胜感激。

由于

0 个答案:

没有答案