当前分类:数据库>>正文

SQLite 和mysql哪个效率高

来源:互联网   时间:2022年8月1日   编辑

最近总有朋友问我这个问题,sqlite和mysql哪个好用些。

我偷懒,总是回答:sqlite方便些,免安装,直接可以使用。实在有些人服务器上的Sqlite版本低,升级麻烦,我才会说用mysql吧,用的人多,比较熟悉。

就我个人的经验来讲 ,用sqlite数据库,数据量稍微大点,就明显要卡一些。而且,无法多进程读取,会出现锁死的情况。

今天看到某头条上面,别人写了一个sqlite背后的故事,我觉得挺好的,转载过来让大家看一下。

SQLite 现在已经是全球用户最多的数据库产品。它非常小巧以及单文件无法单独操作系统进程,就像病毒一样依附在宿主程序的进程里运行,你看不到它,但它却无处不在。汽车,手机,浏览器,以及各类 app 里都能见到 .db 结尾的 SQLite 数据库文件。 假如 SQLite 出现重大bug,或像平常的数据库那样无法连接,整个地球都会乱套。你身边用的几乎所有电子产品(手机,电脑,ipad,笔记本)和嵌入式设备全部都会出问题。它的诞生到大范围全球流行的过程和一般软件有着不太一样的发展历程。
SQLite 诞生的契机就是典型的程序员开发的故事剧本。作者 Richard 最开始在一艘军舰上做 contractor(就是我们说的外包)。他们程序跑在军舰安装的电脑上,电脑上装的是 informix。Richard 的工作就是把 informix 的数据拿出来进行计算然后展示到电脑屏幕上(这和我们今天的 CRUD 工作类似)。
比较令人恼火的是 informix 很不稳定,经常崩溃连不上。部队里的铁拳长官可不懂啥 TCP/IP或者数据库系统知识。他们只看到软件的对话框经常弹出来,而这个对话框又是 SQLite 的作者 Richard 用软件画出来的,锅自然从天而降。于是 Richard 决定自己从头写一个无需外部连接的数据库来解决这个问题。当时恰逢布什政府消减政府预算, Richard 作为外包商没法获得订单,不得不暂停在军舰上的开发。这让 Richard 有了几个月的时间去构思并从头实现 SQLite。
那时时间是 2000 年初,软件开发没有现在这么多参考资料,没有维基百科,google 还没完全起来, 美国只有 1% 家庭有宽带。 而 Richard 也没有数据库开发经验,只有编译器开发经验。他最初的构想非常简单,把每条 sql 语句看成一个独立的执行程序。于是他首先实现了 bytecode 执行器,然后把 sql 语句转化成 byte code 执行。一开始 SQLite 并没有替换掉他们在军舰上的 informix,尽管他们每个开发者都恨透了 informix,但客户指定要用又不得不继续使用(好熟悉的场景)。就这样 SQLite 一直作为 Richard 的 side project 在开发。
为了验证一些想法和测试其中的代码,Richard 开始把 SQLite 发布到了网上,接下来的故事和 linux 诞生有点类似了。 很多人看到一个数据库居然能运行在 palm 这种性能非常弱的掌机上的人都大为惊叹。
一些大公司也开始注意到了 SQLite。首先找上门来的是摩托罗拉,给他们签订了一个功能增强订单,大约 8 万美元的样子。有了这笔钱后,Richard 得以让他认识的几个优秀程序员开始全职在 SQLite 上进行开发。然后就是巨头 AOL(美国在线)打来了电话要把 SQLite 放在 cd 里面使用。
后来更大巨头 Nokia 也过来了, 他们需要把 SQLite 放到 symbian os(塞班系统)。当时 nokia 决定采用 SQLite 绝非偶然,而是 SQLite 在 nokia 内部的产品选型里击败了9个同类其他产品。nokia 之后 SQLite 成立了一个 SQLite 联盟,当时 Mozilla 基金会 Mitchell Baker 教 Richard 如何运行这个组织,如何让那些加入的公司可以资助金钱,但最终决定做什么由他们自己的开发人员拍板。就这样一通码农看不懂的基金会骚操作,让 SQLite 得到了 Mozilla, symbian, Adobe 这些大公司的金钱资助但没有决定权。
这阶段算是 SQLite 发展的中期阶段,像病毒一样发展的高峰阶段是 andorid 发明。 当时 Andorid 是一个内部系统,它比 iPhone 实际上要更早。2005 年那会机器也都是原型机,SQLite 就运行在这些原型机上,同时通过公共网络接入到电脑里面的 GDB中。

[猜你喜欢]

标签: sqlite