Updates from 七月, 2009

  • top Load average

    shishirui 09:36 on 2009/07/16 | 0 Permalink | Reply

    在Linux系统中,uptime、w、top等命令都会有系统平均负载load average的输出,那么什么是系统平均负载呢?
    系统平均负载被定义为在特定时间间隔内运行队列中的平均进程树。如果一个进程满足以下条件则其就会位于运行队列中:

    • 它没有在等待I/O操作的结果
    • 它没有主动进入等待状态(也就是没有调用'wait')
    • 没有被停止(例如:等待终止)

    例如:

    [root@www2 init.d]# uptime
    7:51pm up 2 days, 5:43, 2 users, load average: 8.13, 5.90, 4.94

    命令输出的最后内容表示在过去的1、5、15分钟内运行队列中的平均进程数量。
    一般来说只要每个CPU的当前活动进程数不大于3那么系统的性能就是良好的,如果每个CPU的任务数大于5,那么就表示这台机器的性能有严重问题。对于上面的例子来说,假设系统有两个CPU,那么其每个CPU的当前任务数为:8.13/2=4.065。这表示该系统的性能是可以接受的。

     
  • 关于mysql的select ... for update 锁定

    shishirui 09:38 on 2009/06/05 | 0 Permalink | Reply

    由於 InnoDB 预设是 Row-Level Lock,所以只有「明确」的指定主键,MySQL 才会执行 Row lock (只锁住被选取的资料例) ,否则 MySQL 将会执行 Table Lock (将整个资料表单给锁住)。

    举个例子:

    假设有个表单 products ,裡面有 id 跟 name 二个栏位,id 是主键。

    例1: (明确指定主键,并且有此笔资料,row lock)

    SELECT * FROM products WHERE id='3' FOR UPDATE;

    例2: (明确指定主键,若查无此笔资料,无 lock)

    SELECT * FROM products WHERE id='-1' FOR UPDATE;

    例2: (无主键,table lock)

    SELECT * FROM products WHERE name='Mouse' FOR UPDATE;

    例3: (主键不明确,table lock)

    SELECT * FROM products WHERE id<>'3' FOR UPDATE;

    例4: (主键不明确,table lock)

    SELECT * FROM products WHERE id LIKE '3' FOR UPDATE;

    註1:
    FOR UPDATE 仅适用於 InnoDB,且必须在交易区块(BEGIN/COMMIT)中才能生效。

    註2:
    要测试锁定的状况,可以利用 MySQL 的 Command Mode ,开二个视窗来做测试。

     
  • MYSQL索引

    shishirui 15:29 on 2009/05/27 | 0 Permalink | Reply

    http://blog.csdn.net/feng_sundy/archive/2006/04/19/669324.aspx

    http://space.itpub.net/9842/viewspace-312607

    http://blog.chinaunix.net/u/14468/showart_441875.html

     
  • 关于FLOAT DOUBLE DECIMAL类型

    shishirui 18:20 on 2009/05/26 | 0 Permalink | Reply

    http://blog.sina.com.cn/s/blog_494b7b9201000988.html

    http://www.phpchina.com/html/28/1628-20455.html

     
c
撰写新文章
j
下一篇
k
上一篇
r
回复
e
编辑
o
显示/隐藏评论
t
返回顶部
esc
关闭