Cool
Cool
Published on 2021-05-02 / 24 Visits
0
0

Sqlite和mysql的区别及优缺点 ---- 来源于网络

{card-describe title="百度百科"} SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。 至2021年已经接近有21个年头,SQLite也迎来了一个版本 SQLite 3已经发布。 {/card-describe}

{dotted startColor="#ff6c6c" endColor="#1989fa"/}

{dotted startColor="#ff6c6c" endColor="#1989fa"/}

{callout color="#f0ad4e"} 小型嵌入式,跟mysql差不多,但更小,功能也少,属于本地数据库多用于读多写少,100W以下的数据压力不大,不支持分布式。 {/callout}

  • 真正开源的小型嵌入式数据库,支持事务、触发器器
  • 性能至少优于mysql4.1.0
  • 目前已被几乎所有的高级程序开发语言支持
  • 由于可以自定义数据库函数,尤其在php的扩展中可支持全部php函数,其性能可以说是无上限的

{message type="info" content="“最主要的是没有 Access 的界面” 有很多用php开发的管理工具,与phpmyadmin的界面很相似 可以使用SQLiteManager ,或者使用Navicat for sqlite"/}

SQLite 是一个类似Access的轻量级数据库系统,但是更小、更快、容量更大,并发更高。为什么说 SQLite 最适合做 CMS (内容管理系统)呢?并不是说其他数据库不好, oracle、MySQL、SQLServer 也都是非常优秀的 DBS,只不过他们设计目标不同,特性不同,所以只有更适用某个应用场景,没有绝对的好坏之分。

中小型站点的CMS的特点如下:

  1. 数据量不超过10万

  2. 日页面访问量不超过10万

  3. 一部分网站全部生成静态页面,一部分网站实时查询数据库动态访问

  4. 站长不懂技术,不懂得复杂的数据库维护,只会用 FTP 管理网站

  5. 个人站点基本上是一个人管理,一般情况下只有一个人在访问后台,没有并发

  6. 对数据库来说是读多写少,只有在站长访问后台的时候才会写入

  7. 多运行于虚拟主机,大部分PHP主机均同时支持MySQL,小部分PHP主机需要单独购买MySQL,PHP+MySQL的主机价格较PHP主机价格高。(以万网为例:最便宜的PHP空间780元,最便宜的PHP+MySQL的PHP空间1150元)

  8. 多数中小站点的HTTP服务与MySQL部署在同一服务器上

SQLite 的优点在中小网站CMS应用场景下表现突出:

  1. 与MySQL相比,它更彻底的免费,并且没有任何使用上的限制

  2. 非常小巧,PHP5以上版本中无需任何配置即可支持SQLite

  3. 无需单独购买数据库服务,无服务器进程,配置成本为零

  4. 整个数据库存储在一个单个的文件中,数据导入导出备份恢复都是复制文件,维护难度为零

  5. 读速度快,在数据量不是很大的情况下速度较快,更重要的是:省掉了一次数据库远程链接没有复杂的权限验证,打开就能操作

SQLite的缺点在中小网站 CMS 应用场景下被规避:

  1. 并发低 动态访问时当访问量不超过10万PV的时候,SQLite 超过 Access 的并发能力已经绰绰有余;生成静态页后更无需考虑数据库的并发问题

  2. 在大数据量的情况下表现较差 但是中小站点一般情况下数据量不超过10万,而SQlite 在 100 万数据量之下表现还不错,因为省掉了对数据库服务器的远程连接甚至会更快

  3. 写入较慢 默认配置下的 SQlite 的写入速度比MySQL慢了很多,但是 CMS 应用场景的写入操作较少。在插入新文章的时候基本感受不到慢。集中的写数据库操作只有在安装的时候会出现,不过只出现一次,可以忽略

  4. 为已有的表加索引较慢 但是在中小站点CMS中不会有这样的需求,可以忽略

  5. 无法将 MySQL 部署到与前端机不同的服务器上,但是中小站点也没有分开部署的需求


Comment