- 主题:mysql性能比pg差大节啊
有一个表dept_index,是这样的
dept_id
dept_path
index_id
index_value
report_date
其中dept_path记录了部门的层级关系,/p1/p2/p3/ 这样的字符串,表示上级部门的列表
0表示是最上级机构。
现在要统计每个机构包含下级机构的每日数据汇总
select
t1.dept_id,
t1.index_id,
sum(t2.index_value),
t1.report_date
from
dept_index t1
left join dept_index t2 on
(t1.dept_id=t2.dept_id or t2.dept_path like concat('%/',t1.dept_id,'/%
'))
and t1.index_id = t2.index_id
and t1.report_date = t2.report_date
group by
t1.dept_id,
t1.index_id,
t1.report_date
;
大概1w个左右部门(包括父子部门)。mysql算一晚上没算出来。 加了where
t1.dept_path='0' 只算最上级机构的也不行。
后来用pgloader把mysql导入到pgsql,不到20分钟算出来了。
同样的服务器,同样的索引,mysql还进行了相关优化。
--
FROM 119.139.196.*
要不为啥国内的自主产权数据库都用pg来改啊
--
FROM 222.131.206.*
你这表里有多少条记录啊。。单论性能,mysql,pg差异不大啊。
【 在 iwannabe 的大作中提到: 】
: 标 题: mysql性能比pg差大节啊
: 发信站: 水木社区 (Thu Mar 9 11:53:58 2023), 站内
:
: 有一个表dept_index,是这样的
: dept_id
: dept_path
: index_id
: index_value
: report_date
:
: 其中dept_path记录了部门的层级关系,/p1/p2/p3/ 这样的字符串,表示上级部门的列表
: 0表示是最上级机构。
:
: 现在要统计每个机构包含下级机构的每日数据汇总
: select
: t1.dept_id,
: t1.index_id,
: sum(t2.index_value),
: t1.report_date
: from
: dept_index t1
: left join dept_index t2 on
: (t1.dept_id=t2.dept_id or t2.dept_path like concat('%/',t1.dept_id,'/%
: '))
: and t1.index_id = t2.index_id
: and t1.report_date = t2.report_date
: group by
: t1.dept_id,
: t1.index_id,
: t1.report_date
: ;
:
: 大概1w个左右部门(包括父子部门)。mysql算一晚上没算出来。 加了where
: t1.dept_path='0' 只算最上级机构的也不行。
: 后来用pgloader把mysql导入到pgsql,不到20分钟算出来了。
: 同样的服务器,同样的索引,mysql还进行了相关优化。
:
:
:
: --
:
: ※ 来源:·水木社区 mysmth.net·[FROM: 119.139.196.*]
--
FROM 1.202.162.*
所以为啥四十大盗厂的Java编程规范里对MySQL各种限制,
连表查询不超过多少个之类的……稍微复杂一点就跪了。
【 在 iwannabe 的大作中提到: 】
: 有一个表dept_index,是这样的
: dept_id
: dept_path
: ...................
--
FROM 183.157.161.*
抛开数据库不谈,窃以为这个查询里的 concat改成前缀匹配,可以提升速度10倍
【 在 iwannabe (I wanna be) 的大作中提到: 】
: 有一个表dept_index,是这样的
: dept_id
: dept_path
: index_id
--
FROM 183.179.53.*
是吗?pg要是当年取个好名字,mysql在中国火不起来。
--
FROM 221.216.116.*
跟名字无关,当年的pg的确是对数据库小白用户不友好
【 在 olddognewwit 的大作中提到: 】
:
: 是吗?pg要是当年取个好名字,mysql在中国火不起来。
#发自zSMTH@Fish Boat
--
FROM 58.37.34.*
当年mysql火是因为php标配吧
【 在 RuralHunter 的大作中提到: 】
: 跟名字无关,当年的pg的确是对数据库小白用户不友好
: #发自zSMTH@Fish Boat
--
FROM 114.253.36.*
PG和MySQL现在都支持JSON JSONB这类结构化字段, PG还支持ARRAY,
性能和可靠性都比这样like强
【 在 iwannabe 的大作中提到: 】
: 有一个表dept_index,是这样的
: dept_id
: dept_path
: ...................
--
FROM 220.181.41.*
不同的语句查询效率不一样,差别很大
单表查询中模糊查询速度pg要远高于mysql,其他查询略低于mysql
更新,读并写,操作速度和每秒事务数要高于mysql
【 在 eventvwr 的大作中提到: 】
: 你这表里有多少条记录啊。。单论性能,mysql,pg差异不大啊。
[upload=1][/upload]
--
FROM 221.216.116.*