一个小项目( 1000 个用户左右),直接使用 SQLite 合不合适呢?

一个小项目( 1000 个用户左右),直接使用 SQLite 合不合适呢?
1 xuanbg Jan 26, 2021 合适 |
2 way2explore2 Jan 26, 2021 if 1000 users are all online at the same time, definetely not. |
3 qping Jan 26, 2021 sqlite 没法支持并发写吧,只是并发读应该可以 |
4 stardustree Jan 26, 2021 先试试,崩了再说呗 (●''●) |
5 lynan OP 功能是用户 a 提交表单,用户 b 提交反馈。同时在线人数应该不多,用户提交表单这个行为是低频的。 |
6 lynan OP 用户 b 对用户 a 提交的表单进行反馈。 |
7 0ZXYDDu796nVCFxq Jan 26, 2021 via Android 合适,没问题 |
8 kaka6 Jan 26, 2021 正常没问题,并发量大时就会有问题,必竟是文件数据库,有 IO 瓶颈 |
9 havemail Jan 26, 2021 肯定是不合适,但是如果你加个 Redis 缓存 还是可以的一试,毕竟功能简单而且 QPS 不会太高,1000 用户只是表单提交没啥并发,上线前最好是做一次压测,看看瓶颈在哪。 |
10 love Jan 26, 2021 1000 用户同时在线都没问题 |
11 jason19659 Jan 26, 2021 没啥问题,用文件写都行 |
12 unclemcz Jan 26, 2021 性能应该问题不大的,数据管理是个问题,sqlite 应该无法远程运维。 我自己的一个项目放云上,用 sqlite 运行了差不多一年不到的样子,后来实在是太麻烦了,每次数据运维都要登录服务器,现在换 mysql 了。 |
14 Soar360 Jan 26, 2021 hummm... SQLite 是库级锁哦。 |
15 qwerthhusn Jan 26, 2021 装个 mysql 或者 postgres 也是分分钟的事。资料也多,解决问题方便。 以后用起来使用成本肯定比 SQLLite 要低,而且万一以后扛不住了,也很好扩展 |
16 IDAEngine Jan 26, 2021 还是别用 SQLLite 吧,管理维护太麻烦了,还不如装个 sqlserver 免费版 |
17 xyooyx Jan 26, 2021 加一个降级方案,保证扛不住的时候数据不丢 |
18 yimity nbsp; Jan 26, 2021 sqlite 和 MySQL 在使用上没什么特别大的差别,但是 MySQL 会带来特别多的好处。 所以不清楚线上站点,总是想用 sqlite 是为了什么? |
19 securityCoding Jan 26, 2021 图什么? |
20 kiracyan Jan 26, 2021 sqlite 一般都做单机数据库的吧 |
21 misaka19000 Jan 26, 2021 这个和用户数量没关系吧,主要是看 QPS,如果 1000 个用户只有 100 个子线,而同时只有 10 个用户在进行数据操作,那么 SQLite 显然是没问题的 |
22 yinzhili Jan 26, 2021 以后如果确定不需要扩展的话就可以 |
23 xumng123 Jan 26, 2021 via iPhone 不方便,从 sqlite 迁移到 mysql 巨麻烦,导出的脚本各种不兼容 |
24 lawler Jan 26, 2021 用 H2 吧,至少有在线管理数据库。 |
25 roundgis Jan 26, 2021 via Android 用了六七年了,一都有 |
26 real3cho Jan 26, 2021 SQL Server Express 它不香吗? |
27 opengps Jan 26, 2021 这个问题,跟我当年了解云是虚拟机时候一样的感觉。 一直觉得虚拟机只是本地玩玩,然而现在的云却几乎全是虚拟机。 决定是否可以用于线上的主要因素并非大小体积等,而是看他是否能解决一些线上的问题,任何东西放在有用的地方就是好东西 |
28 bagheer Jan 26, 2021 github 上有一个 rqlite 项目,用 sqlite 做存储, 做了分布式.(默认全内存) |
29 Nich0la5 Jan 26, 2021 尽量不要 sqlite 抗不住高并发 |
30 libook Jan 26, 2021 从项目本身的靠谱性上来说,SQL 可以拿来做企业级应用的。 但数据库一大堆,各有特色,选哪个要结合你的实际需求来看。 最直观的方式就是模拟用户使用情况,然后做压测,比如你有 1000 个用户,就搞 2000 个模拟用户试试,看看能不能扛得住。 要是负载巨低,数据量超小,你搞个 yaml 自己写程序读写也成,读操作就直接在内存里操作,写操作就更新文件。 或者你还是不知道用啥合适,就用主流方案,比如 MySQL 、SQLServer 。 |
31 MrTLJH Jan 26, 2021 via Android 目前我就在用,用户每天 1000 个左右,没并发就没问题 |
32 areless Jan 26, 2021 via Android 这个可以跑在内存中,还能跑在显存中~用 gpu 加速 sql 只要执行的快 库锁级不是问题~直接锁电脑都没问题呀 |
33 c00WKmdje2wZLrSI Jan 26, 2021 @unclemcz navicat 有个 http 隧道功能,可以远程 sqlite |
34 lithbitren Jan 26, 2021 跑在内存里,sqlite 作为内存的持久化,怎么并发问题都不大 |
35 kosmgco Jan 26, 2021 |
36 vanityfairn Jan 26, 2021 h2,有个管理页面,哈哈哈哈。我最近也是在搞内存数据库做个人小项目。用 mysql,对个人而言嫌贵了。 |
37 ibcker Jan 26, 2021 最好不要,不要问我是怎么直到的。。。。逃。。。 |
38 yufeng0681 Jan 26, 2021 docker 部署一个 mysql,也不繁琐啊 |
39 fox0001 Jan 26, 2021 via Android 老哥,对未来的自己好点,还是别… |
40 coymail Jan 27, 2021 via iPhone 可以,但没必要 |
41 xy90321 Jan 27, 2021 把 sqlite 的 db 文件配置到 RAM Disk 里,然后该怎么玩就怎么玩... |
42 xy90321 Jan 27, 2021 但是有一个建议,不要把业务直接和 sqlite 去耦合 想办法抽象出一个 DAO 层来,然后在 DAO 里去适配具体的 DBMS 这样在绝大部分场景下,即使被迫更换 DBMS 也都是一件可控 /可预期的事情 |
43 nuk Jan 27, 2021 可以,除非数据太多,超过 1G 就不太合适了。 |
44 CallMeReznov Jan 27, 2021 1000 人属于非常极限的状态了。 |
45 lynan OP 非常谢谢上面的热心回复,昨晚切换到 MySQL 了,用的云数据库,感觉多了一层连接,比原来使用 SQLite 慢得多(+可以解决的问题)。 确实,在需要扩展功能的时候,SQLite 不方便维护。 |
46 ybzai90 Jan 27, 2021 当然可以,宝塔不就是在用嘛 |
47 xpresslink Jan 27, 2021 一个小项目( 1000 个用户左右),并发用户如果 10 个毫无问题和但是 200 个差别就比较大了。 建议不要用,还是用 Mysql 或 Postgresql,不然项目增改需求,历史数据又比较多的时候就会很痛苦。 |
48 UserDMM Jan 27, 2021 sqlite 这东西还是不适合那么人同时搞 |