易截截图软件、单文件、免安装、纯绿色、仅160KB

MySQL数据库设计原则

转自 http://www.supidea.com/post/mysql_design_database.aspx
MySQL数据库设计原则
MySQL对于成为一个非常快速的数据库服务器有着当之无愧的名声,它也非常容易设置和使用。随着它作为网站后端数据库得声望日增,其效果在去年开始有明 显提高。但是很多MySQL用户更多地知道如何创建一个数据库并编写对它的查询。就像成千上万的人通过载闲暇时用Linux做实验来学习Unix那样,很 多人通过玩MySQL学习关系数据库。这些MySQL新手的大多数既没有关系数据库理论的背景,又没有时间阅读MySQL手册全文。
    因此,我们决定研究某些方法,你可以用针对优化性能来调节MySQL。在读完本文后,你将理解一些帮助你设计你的MySQL数据库和查询的技术,值得你的应用很有效率。我们将假定你熟悉MySQL和SQL基础,但不假定你有这两方面的广博知识。
    只存储你需要的信息
    这听上去是常识,但人们常常采取“厨房下水道”的方式进行数据库设计。他们认为可能项要得每样东西都要存储并设计数据库保存所有者这些数据。你需要对你的需 求现实些,并确定取确实需要什么信息。你常常能随意产生一些数据而不把它存在数据库表中。在这种情况下,从一个应用开发者的角度看也有道理这样做。
    例 如,在线目录的产品表可能包含各种产品的名称、介绍、尺寸、重量和价格。除了价格,你可能想存储每个项目相关的税和运输成本。但实际上不必这样做。首先税 和运输成本可以方便地(由你的应用或MySQL)计算出来。其次,如果税和运输成本改变了,你可能必须编写必要的查询更新每个产品记录中的税和运输的费 率。
    有时人们认为这太难不能在以后往数据库表中加入字段,所以他们感觉不得不定义尽可能多的列。这是明显的概念错误。在MySQL中,你可以用ALTER TABLE命令方便地修改表定义以适应你改变的需求。
    例如,如果你突然认识到你需要给你的产品表增加一个级别列(可能你想允许用户在你的目录中给产品评级),你可以这样做:
    ALTER TABLE products ADD rank INTEGER
    这给你的产品表增加了一个整数类型的级别列,你能用ALTER TABLE做什么的完整介绍参见MySQL手册。
    只要求你需要的东西--要清晰
    就像说“只存储你需要的东西”那样,这可能看来是常识,但这一点


相关文档:

mysql的cardinality在myisam和innodb中的不同

详细解释和例子见下列文章:
http://www.mysqlperformanceblog.com/2008/09/03/analyze-myisam-vs-innodb/
http://www.penglixun.com/work/database/mysql_show_index_cardinality.html
(1)cardinality影响mysql optimizer对索引的选取
(2)可以通过show index from table_name来查看表的索引和cardinality
(3)in ......

怎样解决mysql的too many connections问题?

可以参考下列文章
http://www.mysqlperformanceblog.com/2010/03/23/too-many-connections-no-problem/
结论如下:
(1)mysql默认会给super用户留一个连接,你可以用这个预留的连接来登录,来增加连接数;但是如果连接的用户全是super权限的,则这个预留的连接不存在。这时可以用以下的命令来设置连接数:gdb -p $(cat ......

实现win2003下mysql数据库每天自动备份

终于让服务器每天早上备份一次 MySQL 数据库并自动打包,同时删除 5 天前的备份文件. 分享如下.
1. 环境: windows server 2003 + Apache 2.0 + PHP5 + MySQL 4.0.26 .
2. 假设 PHP 安装目录为 D:/php ,MySQL 安装目录为 D:/mysql.
3. 在 D:/php 下建立目录 WinRAR, 把你 winrar 安装目录下的 WinRAR.exe 和 RARReg.KEY 复 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号