1
James369 337 天前 1
好比电脑和手机,飞机和航模
|
2
wheat0r 337 天前
还能这么比
|
3
Thiece 337 天前
应为功能少,存储过程、触发器、数据分区、网络访问、复制功能、事务管理 SQLite 实现的怎么样
|
4
thevita 337 天前
微信最初的版本 大小 457KB
现在的微信已经 奔着数百兆去了 而他核心功能基本差不多 |
5
kirory 337 天前
需求不同
SQLite 会跑在各种设备上,MySQL 不用这样 |
6
imydou 337 天前
先不说复杂的,sqlite 才几种数据类型
|
7
drymonfidelia OP 需求是把数据库打包进客户端(好几张表数据量都过亿条),SQLite 加各种索引都撑不住,查询一次三分钟,只能考虑把 MySQL 打包进去,但是这东西也太大了
|
8
786375312123 337 天前 2
数据库打包进客户端?什么客户端?
什么样的奇才会想出来这种构架。 |
9
acapla 337 天前 1
让我想起了 GTA Online 开始的十分钟 for loop.
|
10
dyv9 337 天前 via Android 6
好奇,啥都客户端做了,你的服务器在做啥?如果没有服务器你为啥叫它客户端
|
11
bkmi 337 天前 via Android
多大的数据量,说实话几十 G 的微信聊天记录搜索都能秒搜,SQLite 已经足够强了(微信用的是修改版的 SQLite ,有开源,叫 WCDB )
|
13
mightybruce 337 天前
mysql 打入客户端 操作太神奇,你要调研几种嵌入式数据库, 而不是打包 mysql
比如 WCDB 、Firebird |
14
netnr 337 天前 via Android 2
换 DuckDB
|
16
Worldispow 337 天前 via Android
oracle:你在说什么?
|
17
bianhui 337 天前 1
工业软件很多内网环境使用,没有服务端很正常,要求有数据检索数据存储功能也很正常。安装后启动一个 mysql 也很正常。你可以尝试 mysql 作为可选依赖性,用户配置,默认使 sqlite 看能不能分库。或者用一些比较小的数据库发行版
|
18
opengps 337 天前
SQLlite 面向文件,mysql 面向进程
|
19
gbw1992 337 天前
@drymonfidelia #7 你这种不是 sqlite 的问题,最简单的处理方式就是分库。多数据库文件,客户机上固态硬盘。
|
20
ucando 337 天前
好几个表都过亿条, 我想单单是库文件就不小了, 再加 mysql 那点大小又算啥?
|
21
XXWHCA 337 天前
它都带上 lite 字样了
|
22
wanguorui123 337 天前
SQLite 轻量,只保留核心功能。
|
24
nothingistrue 337 天前 1
@bianhui #15 你要是真客户,术语解释会明明白白的将其限制为 Client - Server 中的 Client 。你要是程序员,那无需文档定义,约定上 Client 指的就是 Client - Server 中的 Client 。
|
25
helllkz 337 天前
你赵鹏什么的都在踢中卫,他踢么?踢不了,没这个能力,知道吧
|
26
weijancc 337 天前
楼上说得对, 可以用 DuckDB
|
27
qiyilai 337 天前
也没必要打包到客户端里吧,单独安装也行吧
|
28
lifei6671 337 天前
@786375312123 这是很常见的应用呀。很多 IOS 或 Android 的应用用来缓存本地数据会用到 sqlite 呀。你去看看微信的客户端,底层很多数据也是 sqlite 缓存的。
|
29
june4 337 天前
数据量和一条 sql 几分钟没什么关系,你这肯定全表扫描了,上 mysql 即使更快也有限。主要还是索引没弄好或者本身是全表统计。
以前呆过一家做企业软件的,里面的开发人员完全不懂索引优化,sql 随便写对执行计划怎样根本没这个意识。 |
30
cccer 337 天前
分表做好,我 20 亿数据 SQLite 没索引也是秒查,既然打包到客户端就不用考虑高并发问题。
|
31
sujin190 337 天前
这数据量如果客户端安装不能保证内存充足和 ssd ,估计换 mysql 也提升不了多少,不知道你的客户端安装环境怎样,ToB 的话其实客户端大个几百兆无所谓,ToC 的话安装环境估计也无法保证资源充足似乎你换啥都意义不大吧
|
32
wswlaz 336 天前
一个服务端,一个客户端...... 你觉得呢......
|
33
agagega 336 天前
除了部署在服务器上这种需要并发访问的情况 SQLite 不适合,SQLite 其实是个相当强大的数据库,不要因为名字就瞧不起它。如果是在客户端保存一些数据的场景,用 SQLite 的性能几乎一定比自定义各种乱七八糟的格式或者序列化到 JSON/XML 然后一股脑 fwrite 到硬盘更好。
|
34
flynaj 336 天前
SQLite 名字就暗示它小,适合少量数据。只支持基本的 sql,没有复杂功能,普通用户最多接触到的就是 chrome 类 ll 浏览器用来存用户数据,比起 ini 文件.自定义的 dat 文件,性能,操作性更好。
|
35
drymonfidelia OP |
36
drymonfidelia OP @flynaj chrome 只有已经废弃的 indexeddb 用的是 sqlite 吧?用自定义的 dat 文件还需要自己写索引、删除数据逻辑吧
|
37
drymonfidelia OP @drymonfidelia 打错了 已经废弃的 websql https://developer.chrome.com/blog/deprecating-web-sql
|
38
drymonfidelia OP @flynaj 打错了 已经废弃的是 websql https://developer.chrome.com/blog/deprecating-web-sql
|
39
wanqiangcrack 336 天前
没有白占的空间,也没有白吃的内存。
|
40
whyrookie 336 天前
@786375312123 客户端带个本地数据库,离线使用不是很常见吗?
|
42
cyningxu 336 天前
是我重未设想过的问题,为啥 X86 芯片这么难造,51 芯片却能造出来?
|
43
shunia 336 天前
哈哈哈哈哈。
为什么飞机那么大,自行车这么小,都是交通工具,自行车跑三天都到不了,飞机三个小时就到了。只能考虑坐飞机了,但是这东西也太贵了。 |
45
nodejsexpress 336 天前
明白楼主的需求。很多时候是客户需求和环境限制。
sqlite 主要问题是当你文件太大时,程序启动载入太慢了。 客户端,客户频繁打开的话,很难受得了。 以前搞过一个项目,本来还 ok 的,后面也换了 mysql 。但不用打入客户端里面,只是单机离线。 |
46
james122333 336 天前 via Android
@ucando 但毕竞文字可压缩
|
47
james122333 336 天前 via Android
客户端频繁打开? 那应该是小问题
|
48
wxf666 336 天前
楼主,放下你的 表结构 和 SQL 出来看看?
|
49
geniussoft 336 天前 via iPhone
虽然但是,SQLite 查询性能还是可以的,除非你需要的是 Oracle
|
50
iv8d 336 天前
筷子跟瑞士军刀的区别吧,孩子有功夫想想别的
|
51
iv8d 336 天前
下一条你是不是要问,为什么 Oracle 那么大,MySQL 却能做到那么小?
|
52
lvlongxiang199 336 天前
@James369 有啥相似性吗 ? 有哪些是 MySQL 能做到, 但 sqlite 做不到的 ?
|
53
wxf666 335 天前
@nodejsexpress SQLite 数据库文件就算大到 1TB ,也没事啊?又不是启动就要读完它?
|
54
flowerains 334 天前
好奇 wcdb 国内 App 用的多不多
Firebird 我是知道的 |
55
nodejsexpress 298 天前
@wxf666 作为客户端,用户经常关闭,打开。。。 不是 web
|