它通过一个高度优化的类库实现SQL函数库并像他们能达到的一样快速,通常在查询初始化后不该有任何内存分配 。没有内存漏洞,支持ANSI SQL的LEFT 0UTER JOIN和ODBC 。
MySQL可以工作在不同的平台上 。支持C、C++、Java、Perl、PHP、Python和TCL API 。
MySQL全面支持SQL的GROUP BY和ORDER BY子句,支持聚合函数(COUNT()、COUNT(DISTINCT)、AVG()、STD()、SUM()、MAX()和MIN()) 。你可以在同一查询中混来自不同数据库的表 。所有列都有缺省值 。你可以用INSERT插入一个表列的子集,那些没用明确给定值的列设置为他们的决省值 。
(2)MySQL的缺点MySQL最大的缺点是其安全系统,主要是复杂而非标准,另外只有到调用mysqladmin来重读用户权限时才发生改变 。
MySQL的另一个主要的缺陷之一是缺乏标准的RI(Referential Integrity-RI)机制;Rl限制的缺乏(在给定字段域上的一种固定的范围限制)可以通过大量的数据类型来补偿 。MySQL没有一种存储过程(Stored Procedure)语言,这是对习惯于企业级数据库的程序员的最大限制 。
(3)MySQL的使用场景分布式操作场景:当你需要的比SQLite可以提供的更多时,把MySQL包括进你的部署栈,就像任何一个独立的数据库服务器,会带来大量的操作自由和一些先进的功能 。
高安全性场景:MySQL的安全功能,用一种简单的方式为数据访问(和使用)提供了可靠的保护 。
Web网站和Web应用场景:绝大多数的网站(和Web应用程序)可以忽视约束性地简单工作在MySQL上 。这种灵活的和可扩展的工具是易于使用和易于管理的——这被证明非常有助于长期运行 。
定制解决方案场景:如果你工作在一个高度量身定制的解决方案上,MySQL能够很容易地尾随和执行你的规则,这要感谢其丰富的配置设置和操作模式 。
多用户应用场景:如果你在开发的应用需要被多用户访问,而且这些用户都用同一个数据库,那么相比 SQLite,最好还是选择一个功能完整的关系型数据库MySQL 。
3、PostgreSQL数据库
![开源数据库SQLite、MySQL和PostgreSQL比较](http://img.jiangsulong.com/220421/1K93I4V-3.jpg)
文章插图
PostgreSQL是一个功能非常强大的、源代码开放的客户/服务器关系型数据库管理系统,以加州大学计算机系开发的POSTGRES,4.2版本为基础发展起来的对象关系型数据库管理系统 。PostgresSQL凭借其经过验证的架构,可靠性,数据完整性,强大的功能集,可扩展性以及软件背后的开源社区的奉献精神赢得了良好的声誉,PostgreSQL被广泛地应用到各大IT软件系统中 。
(1)PostgreSQL的优势PostgreSQL支持存储过程,且有众多的商业逻辑的存在,此时使用存储过程可以在较少地增加数据库服务器的负担的前提下,对这样的商业逻辑进行封装,并可以利用数据库服务器本身的内在机制对存储过程的执行进行优化 。此外存储过程的存在也避免了在网络上大量的原始的SQL语句的传输,这样的优势是显而易见的 。
PostgreSQL支持视图,视图的存在可以最大限度地利用数据库服务器内在的优化机制 。而且对于视图权限的合理使用,事实上可以提供行级别的权限,这是MySQL和SQLite的权限系统所无法实现的
PostgreSQL支持触发器,触发器的存在不可避免的会影响数据库运行的效率,但是与此同时,触发器的存在也有利于对商业逻辑的封装,可以减少应用程序中对同一商业逻辑的重复控制 。合理地使用触发器也有利于保证数据的完整性 。
PostgreSQL支持R-trees这样可扩展的索引类型,可以更方便地处理一些特殊数据,支持ODBC 。
(2)PostgreSQL的缺点PostgreSQL运行速度明显低于MySQL和SQLite,因为MySQL使用了线程,而PostgreSQL使用的是进程 。在不同线程之间的环境转换和访问公用的存储区域显然要比在不同的进程之间要快得多 。
PostgreSQL目前仍不完全适应24×7小时运行,这是因为你必须每隔一段时间运行一次VACUUM 。
PostgreSQL在权限系统上也不是很完善 。PostgreSQL只支持对于每一个用户在一个数据库上或一个数据表上的INSERT、SELECT和UPDATE/DELETE的授权,而MySQL允许你定义一整套的不同的数据级、表级和列级的权限 。
PostgreSQL生成每页的速度要比MySQL慢,PostgreSQL还欠缺一些比较高端的数据库管理系统需要的特性,比如对大对象的有效支持,以及查询缓冲等提高数据库性能的机制等 。
(3)PostgreSQL的使用场景数据完整性场景:当可靠性和数据完整性是绝对必要而无需理由时,PostgreSQL是更好的选择 。
【开源数据库SQLite、MySQL和PostgreSQL比较】
推荐阅读
- 不要在MySQL数据库中使用UTF-8编码
- MySQL技术数据库基础操作命令大全,建议收藏
- MySql数据库的下载及安装
- Google开源Java图片处理类库Thumbnail
- 内网穿透外网访问内网 MySQL 等数据库教程
- 前端性能监控及推荐几个开源的监控系统
- 给女同事讲解MySQL数据库范式与反范式,她直夸我“技术好”
- 一款比phpmyadmin更好用的WEB数据库管理工具
- 如何安装oracle数据库
- redis 源码安装