数据库表结构设计方法及原则

转:http://blog.csdn.net/c_sharp_Rookie/archive/2009/01/15/3786317.aspx

在目前的企业信息系统中,数据库还是最佳的数据存储方式,虽然已经有很多的书籍在指导我们进行数据库设计,但应该那种方式是设计数据库的表结构的最好方 法、设计时应遵从什么样的原则、四个范式如何能够用一种方式达到顺畅的应用等是我一直在思考和总结的问题,下文是我针对这几个问题根据自己的设计经历准备 总结的一篇文章的提纲,欢迎大家一块进行探讨,集思广益。其中提到了领域建模的概念,但未作详细解释,希望以后能够有时间我们针对这个命题进行深入探讨。

Sun的CxO大会 归来

     今天上午去参加了Sun的CxO大会,本想得到一些Sun关于MySQL发展方向的消息,但并没得到确切的消息。MySQL的Richard Mason(Sun公司MySQL全球销售副总裁)只是透漏Oracle收购了Sun后MySQL也可能做为Oracle的一个产品去运营。

     在大会上Richard更多的强调MySQL的策略就是攻占中端市场,网站市场。这点我是认同的。并切相信MySQL在这方面做的很棒。此次大会也可以说是Sun决心在中国建立一个好的销售渠道的一个表现。顺便支持一下Sun的行为。

     希望MySQL发展的更好吧。也期待5.4的Release。

     此次大会也一点稳人心的感觉。MySQL现在虽然属于Oracle了,大家不用担心他会被灭掉。MySQL还会永远的活下去。

mysql.user表怎么有两个root?密码怎么改?

作者:吴炳锡 来源:http://www.mysqlsupport.cn/ 联系方式:select unhex('777562696E67786940676D61696C2E636F6D'); 载请注明作/译者和出处,并且不能用于商业用途,违者必究。
MySQL的用户名有两部分组成: 用户名@机器名

用户名:一般用字母组成。
机器名:可以是机器IP也可以机器名。机器名可以用dns也可以在/etc/hosts中声明。

所以可以称为不是两个root用户。

反应到user表中,用户名对应user,机器名对应于host,密码对应于password
一个用户名完整的标识为:user@host

更改密码:
set  password for '用户名'@'主机名‘=password('yourpassword');

所以你见到的两个Root不能算是一个用户名的。

 

MySQL Cluster 7.0 新特性

作者:吴炳锡 来源:http://www.mysqlsupport.cn/ 联系方式: wubingxi#gmail.com 转载请注明作/译者和出处,并且不能用于商业用途,违者必究。

1. 开始支持在Windows建立MySQL Cluster(不是稳定功能,不过有兴趣的可以测试).
2. 在线添加节点或节点组
3. 数据节点开始支持多线程。这样对于CPU的利用就更加有效了。
4. 配置文件缓存功能,减少对配置文件的重复读次数。
5. 快照备份(以前也有功能)
6. 动态结果集缓存分配
7. 加强了ddl语句的支持(新功能)减少运行ddl语句时,节点失败。
8. 在集群复制上支持ipv6.
9. 可以从备份集恢复特定的表或是特定的数据库。
10. 对于数据文件系统支持进行了加强。
11. 自动创建日值组和表空间
12. 改良了内部的消息管理机制(这是一个新特性,感觉应会对性能提高挺大的)

MySQL大表备份

作者:吴炳锡 来源:http://www.mysqlsupport.cn/ 联系方式:select unhex('777562696E67786940676D61696C2E636F6D'); 载请注明作/译者和出处,并且不能用于商业用途,违者必究。

      这里所说的大表是超地4G以上的表,我目前见到过最大为60多G的单表,对于这种表每天一个全备可以说是一件很痛苦的事。
那么有没有办法,可以实现一个全备加增量的备份呢。
答案当然是有的。

在常规环境直可以用全备加binlog一同保存。
  这种环境大多可以用一个Slave上进行备份操作。
  思路:
 先停止Slave的同步,刷新buffer,对于Innodb 如果想直接拷贝还需要把innodb_max_dirty_pages_pct这个值置为零,然后在执行一次flush tables;
 就可以cp了。如果是Dump出来可以这这样做。