▲MYSQL其它的优点 ·优化 对于 MySQL 的优化,我们可以说,主要的问题在于你的硬件条件,而非 MySQL 本身。不过对于 Access,(以及其他桌面数据库软件)事情就不是这样了。 没错,Microsoft Jet Database 的确实有效率,不过它还不是最快的。如果你的数据库设计得非常差,你的网站还是会受到影响而速度变慢的。 数据库结构设计也会影响到 MySQL,例如,MySQL 并不支持外键(foreign key)。这个缺点会影响到你的数据库设计以及网站的效率。对于使用 MySQL 做数据库的网站,你应该注意的是,如何让硬盘存取IO减少到最低值、如何让一个或多个 CPU 随时保持在高速作业的状态、以及适当的网络带宽, 而非实际上的数据库设计以及资料查询语句。事实上,有些网站开发者将 MySQL 称为目前市面上跑得最快的数据库。不过,当你的数据库有很多表格需要同时在一个事务过程(transaction)内完成更新的时候,MySQL 的确跑得不怎么样。
·备份 如果你曾经有过抢救一个损坏的 MDB 档案的惨痛经验,那么你会对 MySQL 表示非常激赏。这是 MySQL 另一个胜过 Access 的地方。首先,mysqldump 会产生一个比 Access 好很多而且也更可靠的备份档案。相比之下,在 Access中你只是将一个 MDB 档拷贝起来做备份。其次,即使 MySQL 的备份有部分损坏,复原起来也要比一个损坏的 MDB 档要容易得多了。
·可延伸性(Scalability)以及资料处理能力 套句登山者的话来说,将 Access 数据库来跟 MySQL 相比,简直就是像把印第安那的小山丘拿来跟科罗拉多洛矶山脉的 Pike's Peak 顶相比较。事实就是这么简单∶MySQL 可以处理的档案比 Access 所能处理的档案大很多。如果你硬将 Access 数据库弄到 100MB 的 MDB 档案时,你要准备好一个字典厚的纪录本来记录来自客户对于网站效率低下的抱怨。而类似的数据库在 MySQL 上面跑,就不会发生承载过重的迹象。
▲MySQL 的不足之处 Access 是一个关联性数据库管理系统(RDBMS),然而 MySQL 并非在每一个层面都是如此。这表示,虽然 MySQL 很好用,它还不是最好的。 以下列表记录了目前关联性层面以及管理层面,MySQL 尚未支持的部分:
MySQL 没法处理复杂的关联性数据库功能,例如,子查询(subqueries),虽然大多数的子查询都可以改写成 join。我们期待下一版出来时,这项功能会被加进来。 另一个 MySQL 没有提供支持的功能是事务处理(transaction)以及事务的提交(commit)/撤销(rollback)。 一个事务指的是被当作一个单位来共同执行的一群或一套命令。如果一个事务没法完成,那么整个事务里面没有一个指令是真正执行下去的。对于必须处理线上订单的商业网站来说, MySQL 没有支持这项功能,的确让人觉得很失望。 但是可以用MaxSQL,一个分开的服务器,它能通过外挂的表格来支持事务功能。 外键(foreign key)以及参考完整性限制(refe