随笔-8  评论-0  文章-1  trackbacks-0
  2010年2月2日
安装broadcom网卡驱动 modprobe broadcom modprobe tg3 dhcpcd eth0
posted @ 2012-07-01 14:44 岩石 阅读(111) | 评论 (0)编辑 收藏
隔离级别

  • READ UNCOMMITTED隔离级别 读取未提交内容 在这个级别下所有事物都能看到未提交的事务执行结果,容易引起脏读
  • READ COMMITTED 读取提交内容(mysql 非默认)只能读取提交后的事务结果
  • REPEATABLE READ (Mysql 默认)可重复读 保证在一个事务下的多个实例读取到相同内容,可能会出现幻读, mysql InnoDB 和 Falcon 引擎解决来幻读问题
  • SERIALIZABLE 可串行化 最高的事物级别 对每个事务加锁。强制事物排序

1 隔离级别                       脏读(Dirty Read)          不可重复读(NonRepeatable Read)          幻读(Phantom Read)
2 读未提交(Read uncommitted)     可能                         可能                                     可能
3 读已提交(Read committed)       不可能                       可能                                     可能
4 可重复读(Repeatable read)      不可能                       不可能                                   可能
5 可串行化(Serializable )        不可能                       不可能                                   不可能

MySQL 事务
  • Mysql 默认提交数据的 AUTOCOMMIT ON
  • InnoDB 行级别锁 多版本并发控制,NDB Cluster Falcon 是事务型 MyISAM 是非事务的 表级别锁,在混合事务的时候不能保证数据一致性
  • InnoDB 使用二相锁定协议 一个事务在执行的时候会获得锁,在commit 或者rollback的时候释放锁,可以显示制定锁 例如 LOCK IN SHARE MODE ,FOR UPDATE

查看 表的状态
show table status like '表名'

MyISAM MySQL 默认的数据库引擎 不支持事务和行级锁

表转换
alter table方式 alter table mytable engine = innoDB; 复制表

打开MySql慢查询日志
修改my.conf
#打开慢查询
log-slow-queries 
= <file_name>
#记录查询大于2秒的记录, 默认是10秒
long_query_time 
= 2
#记录没有使用索引的查询
log-queries-not-using-indexes
#记录运行较慢的管理命令
log-slow-admin-statements
  • 取查看MySql 数据库状态 show status show processlist
  • FLUSH STATUS 刷新状态
  • SQL_NO_CACHE MySql 不会缓存结果 例如 select sql_no_cache * from admin_user
  • show profile cpu for query 1 ; 查看用户查询CPU使用率
选择优化的数据类型
  • 更小通常更好,正确的存储和表示数据的最小类型,更小的数据类型通常更快,更少的使用存储空间 内存和CPU缓存
  • 简单就好 越简单的数据类型需要的CPU周期越少
  • 尽量避免NULL
  • 整数 数据类型包括 TINYINT(8) SMALLINT(16) MEDIUMINT(24) INT(32) BIGINT(64),所有类型都包含UNSIGNED熟悉 ,表示不允许为负数,并且正数上限提高一倍
  • 实数FLOAT(4) DOUBLE(8) 保存精确的小数 DECIMAL可以定义精度 比如DECIMAL(8,2)会在小数点前保留6位,后2位
  • 字符串类型p66
posted @ 2012-05-27 21:14 岩石 阅读(258) | 评论 (0)编辑 收藏
下载JDK tar包 解压到/usr/lib/下

比如 /usr/lib/jdk1.7.0

编辑environment和profile
sudo vim /etc/environment
 
添加如下内容
export JAVA_HOME=/usr/lib/jdk1.7.0
export JRE_HOME
=/usr/lib/jdk1.7.0/jre
export CLASSPATH
=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

sudo vim /etc/profile

在umask 022前 添加如下内容
export JAVA_HOME=/usr/lib/jdk1.7.0
export JRE_HOME
=/usr/lib/jdk1.7.0/jre
export CLASSPATH
=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH
=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin


最后注销系统

安装OPENVPN
sudo apt-get install openvpn

使用OPENVPN
cd /etc/openvpn
sudo openvpn 
--config /etc/openvpn/xxxx.ovpn

启用SSH服务
sudo apt-get install openssh-server openssh-client

安装PG
sudo apt-get install postgresql

sudo apt-get install pgadmin3

posted @ 2011-07-31 19:59 岩石 阅读(298) | 评论 (0)编辑 收藏
用的prototype
 1var DivMove = Class.create();
 2DivMove.prototype = {
 3    initialize : function(){},
 4    init : function(element) {
 5        this._element = element;
 6    }
,
 7    observer : function() {
 8        Event.observe(this._element, 'mousedown', this._mouseDown);
 9        Event.observe(this._element, 'mouseup', this._mouseUp);
10    }
,
11    _mouseDown : function(e) {
12        var event = e || window.event;
13        var offsetX = event.clientX - this.offsetLeft;
14        var offsetY = event.clientY - this.offsetTop;
15        Event.observe(this, 'mousemove', function(e) {
16            var event = e || window.event;
17            var st = Math.max(document.body.scrollTop,
18                    document.documentElement.scrollTop);
19            var sl = Math.max(document.body.scrollLeft,
20                    document.documentElement.scrollLeft);
21     
22            Element.setStyle(this ,{
23                left : event.clientX + sl - offsetX+'px',
24                top : event.clientY + st - offsetY+'px',
25                position : 'absolute'
26            }
);
27        /*
28         * this.style.position = 'absolute'; this.style.left = event.clientX +
29         * sl - offsetX; this.style.top = event.clientY + st - offsetY;
30         */

31        }
);
32
33    }
,
34    _mouseUp : function(e) {
35        Event.stopObserving(this,'mousemove',this.onMousemove);
36    }

37}
;
38var move=new DivMove();
39move.init($('selectItem'));
40move.observer();
41
42var move2=new DivMove();
43move2.init($('selectItem1'));
44move2.observer();
posted @ 2010-02-04 11:15 岩石 阅读(131) | 评论 (0)编辑 收藏
package com.trgc.common.util;

public class EscapeUnescape {
    
public static String escape(String src) {
    
int i;
    
char j;
    StringBuffer tmp 
= new StringBuffer();
    tmp.ensureCapacity(src.length() 
* 6);
    
for (i = 0; i < src.length(); i++{
        j 
= src.charAt(i);
        
if (Character.isDigit(j) || Character.isLowerCase(j)
            
|| Character.isUpperCase(j))
        tmp.append(j);
        
else if (j < 256{
        tmp.append(
"%");
        
if (j < 16)
            tmp.append(
"0");
        tmp.append(Integer.toString(j, 
16));
        }
 else {
        tmp.append(
"%u");
        tmp.append(Integer.toString(j, 
16));
        }

    }

    
return tmp.toString();
    }


    
public static String unescape(String src) {
    StringBuffer tmp 
= new StringBuffer();
    tmp.ensureCapacity(src.length());
    
int lastPos = 0, pos = 0;
    
char ch;
    
while (lastPos < src.length()) {
        pos 
= src.indexOf("%", lastPos);
        
if (pos == lastPos) {
        
if (src.charAt(pos + 1== 'u'{
            ch 
= (char) Integer.parseInt(src
                .substring(pos 
+ 2, pos + 6), 16);
            tmp.append(ch);
            lastPos 
= pos + 6;
        }
 else {
            ch 
= (char) Integer.parseInt(src
                .substring(pos 
+ 1, pos + 3), 16);
            tmp.append(ch);
            lastPos 
= pos + 3;
        }

        }
 else {
        
if (pos == -1{
            tmp.append(src.substring(lastPos));
            lastPos 
= src.length();
        }
 else {
            tmp.append(src.substring(lastPos, pos));
            lastPos 
= pos;
        }

        }

    }

    
return tmp.toString();
    }


}


JQuery GB2312 JS页面采用escape()编码,然后使用上面的类解析出来
posted @ 2010-02-02 10:37 岩石 阅读(166) | 评论 (0)编辑 收藏