怎么评价mysql 怎么评价领导( 二 )


6、MySQL在权限系统上比PostgreSQL某些方面更为完善 。PostgreSQL只支持对于每一个用户在一个数据库上或一个数据表上的 INSERT、SELECT和UPDATE/DELETE的授权,而MySQL允许你定义一整套的不同的数据级、表级和列级的权限 。对于列级的权限,PostgreSQL可以通过建立视图,并确定视图的权限来弥补 。MySQL还允许你指定基于主机的权限,这对于目前的PostgreSQL是无法实现的 , 但是在很多时候,这是有用的 。
7、由于MySQL 4.0.2-alpha开始支持事务的概念,因此事务对于MySQL不再仅仅成为劣势 。相反,因为MySQL保留无事务的表类型 。这就为用户提供了更多的选择 。
8、MySQL的MERGE表提供了一个独特管理多个表的方法 。
9、MySQL的myisampack可以对只读表进行压缩 , 此后仍然可以直接访问该表中的行 。
1、对事务的支持与MySQL相比,经历了更为彻底的测试 。对于一个严肃的商业应用来说,事务的支持是不可或缺的 。
2、MySQL对于无事务的MyISAM表 。采用表锁定,一个长时间运行的查询很可能会长时间地阻碍对表的更新 。而PostgreSQL不存在这样的问题 。
3、PostgreSQL支持存储过程,而目前MySQL不支持,对于一个严肃的商业应用来说,作为数据库本身,有众多的商业逻辑的存在,此时使用存储过程可以在较少地增加数据库服务器的负担的前提下,对这样的商业逻辑进行封装,并可以利用数据库服务器本身的内在机制对存储过程的执行进行优化 。此外存储过程的存在也避免了在网络上大量的原始的SQL语句的传输,这样的优势是显而易见的 。
4、对视图的支持,视图的存在同样可以最大限度地利用数据库服务器内在的优化机制 。而且对于视图权限的合理使用 , 事实上可以提供行级别的权限,这是MySQL的权限系统所无法实现的 。
5、对触发器的支持,触发器的存在不可避免的会影响数据库运行的效率,但是与此同时,触发器的存在也有利于对商业逻辑的封装,可以减少应用程序中对同一商业逻辑的重复控制 。合理地使用触发器也有利于保证数据的完整性 。
6、对约束的支持 。约束的作用更多地表现在对数据完整性的保证上,合理地使用约束 , 也可以减少编程的工作量 。
7、对子查询的支持 。虽然在很多情况下在SQL语句中使用子查询效率低下,而且绝大多数情况下可以使用带条件的多表连接来替代子查询 , 但是子查询的存在在很多时候仍然不可避免 。而且使用子查询的SQL语句与使用带条件的多表连接相比具有更高的程序可读性 。
8、支持R-trees这样可扩展的索引类型,可以更方便地处理一些特殊数据 。
9、PostgreSQL可以更方便地使用UDF(用户定义函数)进行扩展 。
这个问题很难说得清,而
且事实上除了MySQL和PostgreSQL外,使用Oracle、Sybase、Informix等也是明智的选择 。如何你确定只在MySQL和PostgreSQL中进行选择 , 以下规则总是有效的 。1、如果你的操作系统是Windows,你应该使用MySQL 。
2、如果你对数据库并不了十分了解,甚至不知道事务、存储过程等究竟是什么 , 你应该使用MySQL 。
3、如果你的应用对数据的完整性和严肃性要求不高,但是追求处理的高速度 。例如是一个论坛和社区,你应该使用MySQL 。
4、你的应用是一个严肃的商业应用,对数据完整性要求很高 。而且你希望对一些商业数据逻辑进行很好的封装,例如是一个网上银行,你应该使用PostgreSQL 。
5、你的应用处理的是地理数据,由于R-TREES的存在,你应该使用PostgreSQL 。
6、你是一个数据库内核的狂热爱好者,你甚至希望拥有你自己版本的数据库,毫无疑问,你必须使用PostgreSQL,没准下一个PostgreSQL版本中某一个模块的作者就是你 。

推荐阅读