MySQL vs SQLite + UNIQUE索引

Ali*_*xel 1 mysql database sqlite

由于与这个问题无关的原因,我需要为我的一些项目运行几个SQLite数据库而不是更常见的MySQL,我想知道SQLite在磁盘I/O的速度和性能方面与MySQL的比较(数据库将托管在USB 2.0笔式驱动器中).

我已经阅读了http://www.sqlite.org/speed.html上的数据库速度比较页面,我必须说我对SQLite的性能感到惊讶,但由于这些基准测试有点旧,我正在寻找更新的基准测试(SQLite 3 vs MySQL 5),我的主要关注点是磁盘性能,而不是CPU/RAM.

此外,由于我没有那么多使用SQLite的经验,我也很好奇它是否与InnoDB MySQL引擎中的TRIGGER(更新,删除)事件类似.我也找不到任何方法将一个字段声明为像MySQL那样独特,只有PRIMARY KEY - 有什么我缺少的吗?

作为最后一个问题,我想知道一个好的(最好是免费的或开源的)SQLite数据库管理器是否存在.

Cha*_*rch 7

那里有几个问题:

  1. 就磁盘I/O限制而言,我不认为数据库引擎会产生很大的不同.可能有一些小问题,但我认为这主要是数据库是否可以像您的应用程序那样快速读/写数据.由于您将使用与MySQL或SQLite相同数量的数据,我认为它不会有太大变化.
  2. SQLite支持触发器:CREATE TRIGGER语法
  3. SQLite支持UNIQUE约束:列约束定义语法.
  4. 为了管理我的SQLite数据库,我使用Firefox Add-on SQLite Manager.这是非常好的,做我想要的一切.

  • 不同之处在于MySQL可能会尽可能地将所有内容缓存到RAM中.Sqlite不能 - 它希望数据库一直被卸载(事实上是你的应用程序重新启动时).MySQL可以依赖于更长时间的存储并从磁盘缓存数据以减少整体I/O. 任何服务器系统都会这样做. (4认同)