全球主机交流论坛

标题: 纯机械大盘鸡跑的动SQL数据库吗? [打印本页]

作者: Phyton    时间: 2023-11-22 18:49
标题: 纯机械大盘鸡跑的动SQL数据库吗?
想跑PostgreSQL,不是正经业务,自己一个人用,数据量两百多万条,会做分表,但是最大的一个表会有一百多万条,查询语句不会很复杂
4C3G的纯机械大盘鸡不知道能不能跑的动?请大佬指点一下。
IO性能如下
fio Disk Speed Tests (Mixed R/W 50/50):
---------------------------------
Block Size | 4k            (IOPS) | 64k           (IOPS)
  ------   | ---            ----  | ----           ----
Read       | 29.35 MB/s    (7.3k) | 178.94 MB/s   (2.7k)
Write      | 29.36 MB/s    (7.3k) | 179.88 MB/s   (2.8k)
Total      | 58.72 MB/s   (14.6k) | 358.82 MB/s   (5.6k)
           |                      |
Block Size | 512k          (IOPS) | 1m            (IOPS)
  ------   | ---            ----  | ----           ----
Read       | 198.24 MB/s    (387) | 188.62 MB/s    (184)
Write      | 208.77 MB/s    (407) | 201.18 MB/s    (196)
Total      | 407.01 MB/s    (794) | 389.80 MB/s    (380)

作者: zhujizixun    时间: 2023-11-22 18:55
IO看起来怎么不像机械。纯机械肯定跑不动啊,想啥呢,数据库得nvme ssd,ssd都别买
作者: Phyton    时间: 2023-11-22 18:56
zhujizixun 发表于 2023-11-22 18:55
IO看起来怎么不像机械。纯机械肯定跑不动啊,想啥呢,数据库得nvme ssd,ssd都别买 ...

是机械,raidz2 (相当于raid6).
作者: 好得大恩    时间: 2023-11-22 18:57
我没试过,
但我感觉请求量不大应该没问题
数据量虽然大,但是查询只是,多过一两次索引。
炸了不负责,我就纯感觉一波。

作者: 小小书童    时间: 2023-11-22 18:57
“跑的动” 主要怎么定义?
说几个项
单条数据多大规模
单位时间内请求量
实践才能出标准



作者: Phyton    时间: 2023-11-22 18:58
好得大恩 发表于 2023-11-22 18:57
我没试过,但我感觉请求量不大应该没问题
数据量虽然大,但是查询只是,多过一两次索引。
炸了不负责,我就 ...


也就是说只是查询时间长短的问题,对吗?
作者: liugogal    时间: 2023-11-22 19:01
跑当然跑的动 100万这个数据很小了
作者: Phyton    时间: 2023-11-22 19:03
小小书童 发表于 2023-11-22 18:57
“跑的动” 主要怎么定义?
说几个项
单条数据多大规模

我心中的“跑的动”是一个查询语句下去不要卡死了就行,查询时间别太离谱,一个简单的select *限定一个条件(论坛安全设置,我帖子里不能写完整的查询语句),不要十分钟还不能出结果,希望不超过60s吧。最大的规模应该会是那个100万的表进行日期排序,这个时间可以长一点,不限制时间,能出结果就行。单位时间请求量没有,就是我哪天心情好写一个SQL进行查询,不涉及业务。
作者: dragonfsky    时间: 2023-11-22 19:04
一个人用你怕锤子 设置好索引都是小问题
作者: Phyton    时间: 2023-11-22 19:05
小小书童 发表于 2023-11-22 18:57
“跑的动” 主要怎么定义?
说几个项
单条数据多大规模

实践出真知,但是我还没有买机器呢。如果能跑我黑五就买。就怕到时候辛辛苦苦创建了一个庞大的数据库,结果因为IO太拉胯没法用,那就尴尬了。
作者: 好得大恩    时间: 2023-11-22 19:05
Phyton 发表于 2023-11-22 18:58
也就是说只是查询时间长短的问题,对吗?

如果做好索引,单次查询不会慢多少的。
请求量上去了,才会被IO性能所限制。
我是这么感觉的,炸了不负责
作者: Phyton    时间: 2023-11-22 19:07
dragonfsky 发表于 2023-11-22 19:04
一个人用你怕锤子 设置好索引都是小问题
设置好索引都是小问题


请问有什么优化手段吗?我的习惯是每一条数据都会有一个unique ID作为索引,不知道这样是否足够了。
作者: 小小书童    时间: 2023-11-22 19:08
Phyton 发表于 2023-11-22 19:03
我心中的“跑的动”是一个查询语句下去不要卡死了就行,查询时间别太离谱,一个简单的select *限定一个条 ...

大胆预测下:
就你说的情况,完全没必要担心。直接写语句查询就是了。

只要不是同时几十,几百,甚至上万请求。无问题。哪怕只是会写初级SQL语句。动手做就是,实践了才知道该如何调整(如果需要)。

一个表百万条数据,是很小级别的量。
踏实、放心搞。

作者: Phyton    时间: 2023-11-22 19:08
好得大恩 发表于 2023-11-22 19:05
如果做好索引,单次查询不会慢多少的。
请求量上去了,才会被IO性能所限制。
我是这么感觉的,炸了不负责 ...

我不怕炸,到时候真建立起来了,自己会做本地冷备份的。
谢谢大佬指点
作者: Phyton    时间: 2023-11-22 19:10
小小书童 发表于 2023-11-22 19:08
大胆预测下:
就你说的情况,完全没必要担心。直接写语句查询就是了。

有您这句话我就放心了
谢谢hostloc永久荣誉主席
作者: 小猪佩奇    时间: 2023-11-22 19:16
还是看并发,稍微高点肯定没戏,不过内存大可以拿内存补救
作者: Phyton    时间: 2023-11-22 19:24
小猪佩奇 发表于 2023-11-22 19:16
还是看并发,稍微高点肯定没戏,不过内存大可以拿内存补救

没有并发,我自己一个人查询。
作者: karson    时间: 2023-11-22 19:33
Phyton 发表于 2023-11-22 19:03
我心中的“跑的动”是一个查询语句下去不要卡死了就行,查询时间别太离谱,一个简单的select *限定一个条 ...


主要看索引和结果集大小,如果你直接查询所有,返回100万条数据然后排序,那肯定慢。
如果你只是返回其中一小部分结果,比如2000条记录,而且这个查询条件被索引完全覆盖,不会很慢,因为索引都尽量存放在内存中,跟你IO没啥关系,最后只有2000条记录需要回表。
如果查询条件被索引部分覆盖,那得看这次查询的索引起到多大作用,不过一般也能将数据规模减少到log级。

不过100万条数据不算多,不乱来一般不会慢到哪去。
作者: Phyton    时间: 2023-11-22 19:41
karson 发表于 2023-11-22 19:33
主要看索引和结果集大小,如果你直接查询所有,返回100万条数据然后排序,那肯定慢。
如果你只是返回其中 ...

谢谢大佬解答
作者: dragonfsky    时间: 2023-11-22 20:29
Phyton 发表于 2023-11-22 19:07
请问有什么优化手段吗?我的习惯是每一条数据都会有一个unique ID作为索引,不知道这样是否足够了。 ...

需要查什么就用什么做索引 如果是需要全文搜 直接入库es来查 性能翻倍
作者: Phyton    时间: 2023-11-22 20:30
dragonfsky 发表于 2023-11-22 20:29
需要查什么就用什么做索引 如果是需要全文搜 直接入库es来查 性能翻倍

看来我还要需要学习SQL如何使用索引,谢谢大佬指点




欢迎光临 全球主机交流论坛 (https://lilynana.eu.org/) Powered by Discuz! X3.4