Linux下彻底卸载mysql详解,msql

SQL与MySQL有什么区别?

Linux下彻底卸载mysql详解,msql


SQL全称是结构化查询语言,MySQL是一个关系型数据库,是一个软件,这是两者最根本的区别,就相当于c与vc6.0的区别,一个是语言,一个是基于这种语言实现的的软件 。联系的话,MySQL是基于SQL标准实现的一个数据库管理软件,你可以在上面写SQL语句,练习SQL,基本的增删改查,触发器,存储过程等,当然,你也可以使用其他数据库管理软件,像SQL Server,Oracle等,这个因人、实际的项目而异,就看你的选择了,都可以在上面练习SQL 。
PostgreSQL与MySQL相比,优势何在?
Linux下彻底卸载mysql详解,msql


PostgreSQL类似于Oracle的多进程框架,可以支持高并发的应用场景 。如果把Oracle DBA转到PostgreSQL数据库上是比较容易的,毕竟PostgreSQL数据库与Oracle数据库很相似 。PostgreSQL几乎支持所有的SQL标准,支持类型相当丰富 。PostgreSQL数据库的源代码要比MySQL数据库的源代码更容易读懂,如果团队的C语言能力比较强的话,就可以在PostgreSQL数据库上做开发,比方说实现类似greenplum的系统,这样也能与现在的分布式趋势接轨 。
为了说明PostgreSQL的功能,下面从“从Oracle迁移到Mysql之前必须知道的50件事”简要对比一下PostgreSQL数据库与MySQL数据库之间的差异 。从Oracle迁移到Mysql会面对的50件难事1、对子查询的优化表现不佳 。(PostgreSQL可解决)2、 对复杂查询的处理较弱 。(PostgreSQL可解决)3、 查询优化器不够成熟 。
(PostgreSQL可解决)PostgreSQL完全支持SQL-92标准,对SQL的支持也很全面,可以支持复杂的SQL查询 。4、 性能优化工具与度量信息不足 。(PostgreSQL可解决)PostgreSQL提供了执行计划和详细的cost值,可以方便看到SQL的执行效率 。5、 审计功能相对较弱 。6、 安全功能不成熟,没有用户组与角色的概念,没有回收权限的功能(仅可以授予权限) 。
当一个用户从不同的主机/网络以同样的用户名/密码登录之后,可能被当作完全不同的用户来处理,没有类似于Oracle的内置的加密功能 。7、 身份验证功能是完全内置的,不支持LDAP、Active Directory或其它类似的外部身份验证功能 。8、 Mysql Cluster可能与你想象的有较大差异 。9、 存储过程与触发器的功能有限 。
(PostgreSQL可解决)PostgreSQL提供了完善的存储过程和触发器支持 。10、 垂直扩展性较弱 。11、 不支持MPP(大规模并行处理) 。(PostgreSQL可解决)PostgreSQL是类似Oracle数据库的多进程架构,而不像MySQL是多线程的架构,所以能支持MPP 。12、 支持SMP(对称多处理器),但是如果每个处理器超过4或8个核(core)时,Mysql的扩展性表现较差 。
13、 对于时间、日期、间隔等时间类型没有秒以下级别的存储类型 。14、 可用来编写存储过程、触发器、计划事件以及存储函数的语言功能较弱 。15、 没有基于回滚(roll-back)的恢复功能,只有前滚(roll-forward)的恢复功能 。16、 不支持快照功能 。17、 不支持数据库链(database link) 。
有一种叫做Federated的存储引擎可以作为一个中转将查询语句传递到远程服务器的一个表上,不过,它功能很粗糙并且漏洞很多 。18、 数据完整性检查非常薄弱,即使是基本的完整性约束,也往往不能执行 。(PostgreSQL可解决)PostgreSQL提供完善的数据完整性检查机制,支持外键 。19、 优化查询语句执行计划的优化器提示非常少 。
20、 只有一种表连接类型:嵌套循环连接(nested-loop),不支持排序-合并连接(sort-merge join)与散列连接(hash join) 。(PostgreSQL可解决)PostgreSQL则支持这些表连接类型 。21、 大部分查询只能使用表上的单一索引;在某些情况下,会存在使用多个索引的查询,但是查询优化器通常会低估其成本,它们常常比表扫描还要慢 。

推荐阅读