我正在存档这个网络论坛,通常每周清理一次.所以我屏幕抓取它,并将其存储到我的数据库(PostgreSQL).
我还对数据进行了一些分析,其中有一些图表供用户欣赏,比如论坛最活跃的时间,等等.
所以我有一个帖子表,如下:
Column | Type
------------+------------------------------
id | integer
body | text
created_at | timestamp without time zone
topic_id | integer
user_name | text
user_id | integer
Run Code Online (Sandbox Code Playgroud)
我现在想要为每个用户提供一个帖子计数,用于我的小十大海报表.
我想出了这个:
SELECT user_id, user_name, count(*)
FROM posts
GROUP BY user_id, user_name
ORDER BY count DESC LIMIT 10
Run Code Online (Sandbox Code Playgroud)
结果证明非常慢.9秒,目前在帖子表中只有大约30万行.
如果我只分组一列,它只需要半秒钟,但我需要两个.
我对关系数据库和SQL很新,所以我不太确定这是不对的,或者我怎么做错了?
所以我有这些车辆,它们有很多不同类型.每种类型都有自己的表,具有许多属性.然后我有一个"车辆"表,其中包含每张桌子中所有车辆的ID和类型.车辆可以有照片,因此我有一张"照片"表,带有vehicle_id,将照片链接到它所属的车辆.
现在每辆车都有一个设备列表,我将其作为JSON阵列存储在一个"设备"列中.
我怎么能更好地做到这一点,尤其是设备柱?