随笔-8  评论-0  文章-1  trackbacks-0
  2010年2月4日
安装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 岩石 阅读(253) | 评论 (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 岩石 阅读(293) | 评论 (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 岩石 阅读(126) | 评论 (0)编辑 收藏