8月24
本文首先讨论了基于第三范式的数据库表的基本设计,着重论述了建立主键和索引的策略和方案,然后从数据库表的扩展设计和库表对象的放置等角度概述了数据库管理系统的优化方案
。 1 引言
数据库优化的目标无非是避免磁盘I/O瓶颈、减少CPU利用率和减少资源竞争。为了便于读者阅读和理解,笔者参阅了Sybase、Informix和Oracle等大型数据库系统参考资料,基于多年的工程实践经验,从基本表设计、扩展设计和数据库表对象放置等角度进行讨论,着重讨论了如何避免磁盘I/O瓶颈和减少资源竞争,相信读者会一目了然。
2 基于第三范式的基本表设计
在基于表驱动的信息管理系统(MIS)中,基本表的设计规范是第三范式(3NF)。第三范式的基本特征是非主键属性只依赖于主键属性。基于第三范式的数据库表设计具有很多优点:一是消除了冗余数据,节省了磁盘存储空间;二是有良好的数据完整性限制,即基于主外键的参照完整限制和基于主键的实体完整性限制,这使得数据容易维护,也容易移植和更新;三是数据的可逆性好,在做连接(Join)查询或者合并表时不遗漏、也不重复;四是因消除了冗余数据(冗余列), 在查询(Select)时每个数据页存的数据行就多,这样就有效地减少了逻辑I/O,每个Cash存的页面就多,也减少物理I/O;五是对大多数事务(Transaction)而言,运行性能好;六是物理设计(Physical Design)的机动性较大,能满足日益增长的用户需求。
8月24
前几天,突然两个哥们给我发QQ消息,问我忘记MySQL的root帐号的密码后该怎么办(Windows系统)。由于急着赶东西,所以今天的工作忙完后到现在才给一个朋友解决了,所以把方法记录下来,然后让另外一个朋友自己来看我的记录,自己去修改
。具体步骤如下:
一、首先停止服务器的MySQL服务,然后点击开始-运行-输入“cmd”,进入命令提示行。
二、使用CD命令把命令行路径切换到MySQL安装目录下的bin目录,比如我的MySQL安装路径为C:\MySQL,那么就执行以下命令:
cd c:\mysql\bin
c:
三、在当前命令提示行下执行该命令:mysqld-nt --skip-grant-tables
四、然后新开一个命令提示行,按照步骤一、二,再进入MySQL的bin目录,输入命令:
mysql
use mysql
update user set Password=PASSWORD('123456') where User='root';
五、关闭这两个命令行窗口,启动MySQL服务,这样MySQL的root帐号的密码就修改为123456了,然后登录phpMyAdmin将root帐号的密码修改为自己所需的,一定要使用安全的方法记录好了。
5月1
今天碰到个问就是在不同数据库这间的表的数据的复制。嘿嘿,猪头我从来没有用过,所以在网上查了下,总结如下。
当表目标表存在时:
insert into 目的数据库..表 select * from 源数据库..表
当目标表不存在时:
select * into 目的数据库..表 from 源数据库..表
--如果在不同的SQL之间:
insert into openrowset('sqloledb','目的服务器名';'sa';'',目的数据库.dbo.表)
select * from 源数据库..表
--或用链接服务器:
--创建链接服务器

当表目标表存在时:
insert into 目的数据库..表 select * from 源数据库..表
当目标表不存在时:
select * into 目的数据库..表 from 源数据库..表
--如果在不同的SQL之间:
insert into openrowset('sqloledb','目的服务器名';'sa';'',目的数据库.dbo.表)
select * from 源数据库..表
--或用链接服务器:
--创建链接服务器






