九月 30, 2006 at 2:04 下午
by Kim Chow · Filed under freebsd, linux, 操作系统
网上的东西都是这样,介绍软件,参数的多,实例的很少。
很多时候,我们有了软件的参数使用方法,但是还是不是很明白,领会。今天,我在用网路岗监控的时候,看到里面监控的仅仅是些常用的网络服务器形式,80,邮件,ftp,功能太下载。这个监控上网内容还可以,要分析些网络事件,无能为力了。
于是,我想到,一般局域网中怕的就是木马,病毒,发送垃圾数据包,常常堵塞网络。 于是,我就想起用tcpdump来试试看,毕竟很多软件都是靠他来监控的。试试牛刀了 Read the rest of this entry »
Permalink
九月 16, 2006 at 10:34 下午
by Kim Chow · Filed under MySQL, 数据库
1。如果要创建基表是其它用户表的实体化视图,那么需要给实体化视图的owner赋予以下权限:
grant CREATE ANY MATERIALIZED VIEW to username;
grant SELECT ANY TABLE to username;
如果要创建refresh on commit的视图,那么还需要下面这个权限:
grant ON COMMIT REFRESH to username;
2。创建refresh on commit的语法如下,此类实体化视图在基表的事务commit之后,就会立刻刷新
CREATE MATERIALIZED VIEW MV_T1
REFRESH FAST ON COMMIT WITH PRIMARY KEY AS SELECT * FROM kamus.t1;
3。如果不指定on commit,那么默认是on demand,只有手工调用DBMS_MVIEW包中的刷新过程,实体化视图才会被刷新
4。指定了start with … next …选项之后,第一次创建会有作一次完整刷新,然后在指定的时间间隔之后会定时刷新,本例中刷新间隔为1分钟。
语法如下:
CREATE MATERIALIZED VIEW MV_T1
REFRESH FAST START WITH SYSDATE NEXT sysdate+1/24/60 WITH PRIMARY KEY AS SELECT * FROM kamus.t1;
检查USER_REFRESH视图和USER_JOBS视图,我们可以发现start with… next …语法也就是Oracle自动创建了一个刷新组,这个刷新组的名称跟实体化视图名称相同,并且IMPLICIT_DESTROY属性为Y,表示只要该组中的实体化视图删除该组也自动被删除。同时,创建了一个JOB,JOB中的waht属性是dbms_refresh.refresh(‘"SCOTT"."MV_T1"’);
自然,由于自动刷新是通过JOB完成的,那么初始化参数job_queue_processes必须大于0,这样JOB才会正常运行。
5。可以自己创建刷新组来定时刷新,我以前的这篇文章中有创建刷新组的方法:
Permalink
九月 16, 2006 at 10:13 下午
by Kim Chow · Filed under MySQL, 数据库
这篇文章中,我们选用MySQL 4.0.2-alpha与PostgreSQL 7.2进行比较,因为MySQL 4.0.2-alpha开始支持事务的概念,因此这样的比较对于MySQL应该较为有利。
我们这样的比较不想仅仅成为一份性能测试报告,因为至少从我个人来看,对于一个数据库,稳定性和速度并不能代表一切。对于一个成熟的数据库,稳定性肯定会日益提供。而随着硬件性能的飞速提高,速度也不再是什么太大的问题。
Read the rest of this entry »
Permalink
九月 16, 2006 at 10:08 下午
by Kim Chow · Filed under MySQL, 数据库
原文作者: Peter Zaitsev
原文来源: http://www.mysqlperformanceblog.com/2006/08/31/derived-tables-and-views-performance
译者:叶金荣(Email:
),转载请注明译者和出处,并且不能用于商业用途,违者必究。
Starting MySQL 4.1, MySQL had support for what is called derived tables, inline views or basically subselects in the from clause.
In MySQL 5.0 support for views was added.
从MySQL 4.1开始,它已经支持派生表、联机视图或者基本的FROM从句的子查询。
These features are quite related to each other but how do they compare in terms of performance ?
这些特性之间彼此相关,但是它们之间的性能比较如何呢?
Read the rest of this entry »
Permalink
九月 16, 2006 at 10:00 下午
by Kim Chow · Filed under MySQL, 数据库
修改视图需要create view 和 delete 权限。
表和视图的命令在同一个命名空间中,所以同一个数据库不能有表名和视图名重复。
可以对其他数据库中的表建视图
视图的定义有以下的限制:
1、from子句中不能有子查询
2、select不能指向系统或者用户的变量
3、select不能指向prepared语法参数
4、定义中的表或视图必须存在
5、不能对临时表建视图,也不能建临时视图
6、视图定义中的表名必须已经存在
7、不能在触发器和视图之间建关联
ORDER BY可以用在视图定义中,但是如果访问视图的select中使用的order by,则视图定义中的ORDER BY被忽略。
语法:
CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
ALGORITHM扩展了标准sql,有三个值,默认值是UNDEFINED,预算法则决定了mysql如何处理视图。
对于临时表方式,会将视图的结果放置到临时表中,然后使用临时表执行sql,这样的好处是在临时表建完之后,就会释放在原表上面的锁,这样比MERGE方式更快的释放在访问的表上的锁。
对于UNDEFINED方式,是指有系统自己决定使用临时表方式还是MERGE方式,MERGER方式更高效,且临时表方式不能更新视图的数据。
对于MERGE方式,实际上是把访问视图的SQL拼接到视图本身的sql上面。要求视图的行和表的行之间是一一对应的,如果不存在
这样的一一对应的关系,则会切换到临时表算法。
包含以下关键字的sql,不能使用merge方式:
聚合函数(sum,min,max,count等等)
distinct
group by
having
union或者union all
常量视图
另外,这些视图的纪录也是不能更新和删除的,不能更新和删除纪录的视图除了以上那些情况外,还包括:
select中包含子查询
join
from一个不能更新的视图
from一个表的子查询
算法是临时表的视图
如果视图还想要可以插入纪录,则必须满足以下条件:
视图必须包含基表没有默认值的所有字段
视图列必须是简单的对应表的列,没有在上面进一步的处理。
多于多表视图的可更新性:
首先必须是基于MERGE算法的
表连接必须是内连接
视图中只有一个单表是可以被更新的。
对于多表可更新视图,如果插入其中一个单表是可以的,删除纪录是不允许的
WITH [CASCADED | LOCAL] CHECK OPTION决定了是否允许更新数据使纪录不再满足视图的条件。
这个选项和oracle是类似的
local是只要满足本视图的条件就ok
cascade则是必须满足所有针对该表的所有视图的条件才ok。
如果没有明确是local还是cascade,则默认是cascade。
删除视图:
DROP VIEW [IF EXISTS]
view_name [, view_name] …
[RESTRICT | CASCADE]
显示视图内容:
SHOW CREATE VIEW view_name
Permalink
九月 13, 2006 at 7:50 下午
by Kim Chow · Filed under 计算机与网络
日常五种水 千万不要喝
水是人类赖以生存的、不可缺少的重要物质,人可一日无食但不可一日无水,但是并非所有的水都可以饮用,以下五种水在某种程度下会形成亚硝酸盐及其他有毒有害物质,会对人体产生一定的危害,因此要引起人们的关注。
Read the rest of this entry »
Permalink
九月 12, 2006 at 5:00 下午
by Kim Chow · Filed under PHP
Smarty将所有大括号{}里的东西都视为自己的逻辑程序,于是我们在网页中想插入javascript函数就需要literal的帮忙了,literal的功能就是忽略大括号{}。
示例:
{literal}
<script language=javascript>
function isblank(field) {
if (field.value == ”)
{ return false; }
else
{
document.loginform.submit();
return true;
}
}
</script>
{/literal}
Permalink
九月 11, 2006 at 11:49 下午
by Kim Chow · Filed under MySQL, 数据库
原著:Nathan Matias 翻译:处处
我的站点最初是采用PHP驱动,由MySQL数据库支持的方案,这在当时是一个明智的方案。在2001年夏天,我将我的数据库换成了PostgreSQL(有时也简称为Postgres)。
Read the rest of this entry »
Permalink
九月 11, 2006 at 2:31 上午
by Kim Chow · Filed under freebsd, linux, 编程
可能大家经常要去互联网上搜索特定的内容,比如收集大量邮件地址,如果用 google 之类的搜索引擎是没法实现这种特定功能的,所以用 C 语言来写一个吧。它的功能就是不断去取得网络上的页面,然后分析出网页上出现的邮件地址保存下来。象个蜘蛛一样,从网络上一个网页爬向另一个网页,不停止地搜索邮件地址。
当然这只是一个原理展示程序,并没有进行优化。 Read the rest of this entry »
Permalink
九月 11, 2006 at 2:28 上午
by Kim Chow · Filed under freebsd, 操作系统
可能是Vmware的问题,我怎样也装不上FreeBSD6.1.
试了不下十次都不行。各种安装方式都试过了。比较郁闷。。。
后来,实在想不到怎样安装,只好装了FreeBSD5.5升级到FreeBSD6.1。呵呵。。
Permalink