background image

  很多人倾向于擅自自定义一些数据的格式,比如,使用

string 来存储序列化的 PHP 对

象。这样的话数据库管理起来可能会变得简单些,但会使得

MySQL 成为一个糟糕的数据存

储而且之后很可能会引起故障。

  

8.在查询中使用*

  永远不要使用

*来返回一个数据表所有列的数据。这是懒惰:你应该提取你需要的数据。

就算你需要所有字段,你的数据表也不可避免的会产生变化。

  

9.不使用索引或者过度使用索引

  一般性原则是这样的:

select 语句中的任何一个 where 子句表示的字段都应该使用索

引。

  举个例子,假设我们有一个

user 表,包括 numeric ID(主键)和 email address。登录的

时候,

MySQL 必须以一个 email 为依据查找正确的 ID。如果使用了索引的话(这里指

email),那么 MySQL 就能够使用更快的搜索算法来定位 email,甚至可以说是即时实现。否
则,

MySQL 就只能顺序地检查每一条记录直到找到正确的 email address。

  有的人会在每个字段上都添加索引,遗憾的是,执行了

INSERT 或者 UPDATE 之后这

些索引都需要重新生成,这样就会影响性能。所以,只在需要的时候添加索引。

  

10.忘记备份!

  虽然比较罕见,但是数据库还是有崩溃的危险。硬盘有可能损坏,服务器有可能崩溃,
web 主机提供商有可能会破产!丢失 MySQL 数据将会是灾难性的,所以请确保你已经使用
了自动备份或者已经复制到位。

  

11.Bonus mistake-不考虑使用其他数据库

  对于

PHP 开发人员来说,MySQL 可能是使用最广泛的数据库系统,但并不是唯一的

选择。

PostgreSQL 和 Firebird 是最强有力的竞争者:这个两者都是开源的,而且都没有被

公司收购。微软提供了

sql server Express,甲骨文提供了 10g Express,这两者都是企业

级数据库的免费版本。有时候,对于一个较小的

web 应用或者嵌入式应用,SQLite 也不失

为一个可行的替代方案。