如果一台服务器里,放上百万个数据库会怎样?

2016-01-06 08:01:31 +08:00
 stanhou

都是很小的数据库,表结构都一样,大多数都不经常访问。表结构也是万年不需要改变的。
然后会不会还有其它问题?

2842 次点击
所在节点    数据库
25 条回复
lxrmido
2016-01-06 08:18:44 +08:00
数据库只是文件
c742435
2016-01-06 08:27:17 +08:00
内存不够?
wuxqing
2016-01-06 08:37:31 +08:00
数据库系统通常会把数据库相关的文件集中放到某个目录下,所以我个人觉得上百万个数据库对应的就有几百万(甚至几千万)个文件( pgsql 是每个数据库一个文件夹)在一个目录下,这样速度会慢。当然大多数不经常访问,估计影响不大,常用的数据库会被缓存
zonghua
2016-01-06 08:51:02 +08:00
oracle 的话一个数据库就是一个实例的进程和文件
Admstor
2016-01-06 09:00:13 +08:00
单目录下百万级文件数会有性能问题
Livid
2016-01-06 09:03:06 +08:00
最简单的验证方法就是写一个程序在这台服务器上建 100 万个这样的测试数据库或者表,然后就知道瓶颈在哪里了。
hienchu
2016-01-06 09:05:45 +08:00
不经常访问应该没问题
shakoon
2016-01-06 09:28:09 +08:00
为什么要建这么多库?一个实例下建百万个用户不行吗,表都在一个库里。
Cassius
2016-01-06 09:32:39 +08:00
然后回头就又要优化数据库么。。。
rainysia
2016-01-06 10:37:47 +08:00
碰见过类似的一个数据库设计.
是目前还没起来的汽配市场.
俄罗斯人设计的.每年每个车型一个库, 按照发动机, 地盘这样分了表, 里面存上原厂目录(就是该款车的每个零部件的型号,size,price,图纸,锚点之类的). 想想多少库

之前看那个 DB, 是 sqlserver,大概有 7T, 只包括了欧洲近 60 年来的车型(中国和美国是另外两套标准, 所以没数据). 图纸单独存另外一个服务器.

更新一次细节比如锚点要大概 24 小时
Neveroldmilk
2016-01-06 11:18:10 +08:00
要看你的服务器 I/O 吞吐能力和运算能力,基本上这样搞都是自虐。
clino
2016-01-06 11:19:40 +08:00
上百万个 sqlite 文件是不是就行了?
xiaosu
2016-01-06 11:24:15 +08:00
过来凑个热闹
Tink
2016-01-06 11:28:15 +08:00
sqlite+1 啊,一切皆文件
laoyuan
2016-01-06 11:48:15 +08:00
表结构,加一个 table_id 字段汇总到一个表里不就完了
stanhou
2016-01-06 13:05:39 +08:00
数据库是 Mysql/innodb
@shakoon 用的 php 程序,提供 saas ,每个实例都要新建一组表

@laoyuan 我最先就考虑这个方法,比如在所有 tables 加一个 site_id,但是要修改很多代码,而且查询条件也会增多,所以就想能不能用这种“暴力”的方法。
wizardoz
2016-01-06 13:06:24 +08:00
打开方式不对
ooh
2016-01-06 13:10:09 +08:00
会不会上灰尘?
winkidney
2016-01-06 13:44:06 +08:00
@Cassius 发现一只休斯,也是默默怒摸!
SmiteChow
2016-01-06 15:17:58 +08:00
表中加 user_id, 提供多租户。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/248661

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX