类似微博、朋友圈的文字+图片的短文,这种需求的数据库是用 MySQL 吗,文章内容文字+图片怎么设计存储比较合适?
类似微博、朋友圈的文字+图片的短文,这种需求的数据库是用 MySQL 吗,文章内容文字+图片怎么设计存储比较合适?
|
Tn5ohB1Yecdk3qCKMar 18, 2020
1
感觉 mongodb 这种文档数据库会好点
|
|
cgpiaoMar 18, 2020
2
图片不都是 ObjectStore 然后数据库里插入对应的 Key 吗,貌似跟数据库类型没啥关联吧。
|
|
3
楼上别瞎说,图片、视频等原始文件绝对不能存数据里里,所以其实关系数据库足够。
如果是图文混排,可以先这样 文字文字文字[img]path/name.jpg[/img]文字文字[video]path/name.mp4[/video]文字文字 如果类似微博、朋友圈,用不同字段存储就行,文字存文字自动,图片、视频存路径 |
|
GeminiProMar 18, 2020
5
图片视频绝对不能存 db
|
|
opengpsMar 18, 2020
6
123 楼都没错,文件使用第三方对象存储已经是行业常用做法,
数据库基本只是文本类信息 微博朋友圈这种时间线性质应用,“分页”不适合,但不能因此排除关系型数据库,使用关系型可以按照指定起点拉取指定行结果的方式。也可以直接使用非关系型的,例如时序数据库存短篇幅信息,长篇幅则把内容单独拆出来存储 |
|
psychooMar 18, 2020
7
图片、视频存路径
|
|
gz911122Mar 18, 2020
8
学习一下,一直想知道这种表结构的最佳实践是啥
|
|
mmnsghgnMar 18, 2020
9
|
|
DabaicongMar 18, 2020
10
23 楼说的对,原始文件存对象存储,比如阿里云的 oss。
数据库中存放对应的存储路径就行 另外,全文检索在内容查询上会比较好 |
|
LudwigWSMar 18, 2020
11
我很好奇为什么能时间线、推送能做得相应这么快。
|
|
lhx2008Mar 18, 2020 via Android
12
大概率还是用关系数据
|
|
Tn5ohB1Yecdk3qCKMar 18, 2020
13
@qiayue #4
我瞎说?谁会把图片视屏丢数据库?? |
|
14
@LudwigWS 消息队列,预处理将要推送的时间线消息 id 放到 redis,从 redis 拉取,过于久远历史消息有必要时再从 db 取,区分活跃不活跃,是否大 v 采取不同的 push/pull 方式
|
|
aut0manMar 18, 2020
15
为什么我接触的从来都是 db 存路径…难道可以直接把图片视频存 db ??@@ 谁能科普一哈(那啥我是个产品)
|
|
arelessMar 18, 2020 via Android
16
mysql 做不到的,当时就因为这个造出来那么多 nosql 数据库。关注十万人去 mysql 里捞一个你关注的 timeline 试试。对于普通用户,被关注对象发言直接存进每一个普通用户 timeline 里面~对于 1 万粉以上又另外处理。
|
|
iConnectMar 18, 2020 via Android
17
微博和普通 blog 的存储方式并没有本质不同; newsfeed 的推送是推拉结合的方式,活跃用户先推,僵尸用户等自己登录后来拉。
|
|
ooTooMar 18, 2020
18
图片视频是 s3, HDFS 这种, 剩余的就是存 db, 按照需要 nosql or sql
|
|
JoooooooooMar 18, 2020
19
图片视频肯定是 s3 啊, 要不然同一张图片别人发好多次得存好多次, 肯定是存个 id
|
|
wangyzjMar 18, 2020
20
redis + mysql + hbase
够你玩了 |
|
0x663Mar 20, 2020
21
@tyrantZhao 为什么图片视频绝对不能存 db?
|
|
22
@liushaokang 一般都是存路径的,因为视频或者图片太大了,非常容易挤占不多的内存和磁盘空间
|
|
thinkmoreMar 26, 2020
23
|
|
0x663Mar 26, 2020
24
@tyrantZhao 那这些图片和视频资源上传到哪里,他们又是如何存储的?
|
|
GeminiProMar 26, 2020
25
@liushaokang 这个一般都是放到指定目录下
|
|
hsddszjsMar 26, 2020 via iPhone
26
apache cassandra
|