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