摘要:
总的感觉,python本身并没有对二进制进行支持,不过提供了一个模块来弥补,就是struct模块。python没有二进制类型,但可以存储二进制类型的数据,就是用string字符串类型来存储二进制数据,这也没关系,因为string是以1个字节为单位的。import structa=12.34#将a变为二进制bytes=struct.pack('i',a)此时bytes就是一个string字符串,字符串按字节同a的二进制存储内容相同。再进行反操作现有二进制数据bytes,(其实就是字符串),将它反过来转换成python的数据类型:a,=struct.unpack('i 阅读全文
摘要:
mysql联合索引 sql索引使用注意:Index(Name,Age)表示在Name,Age两列上建立联合索引由于索引对数据库的查询性能有着至关重要的影响,下面是我的一些总结和体会:一个查询一次只能使用一个索引:select name from user where name='plantegg' and age>35 , 如果Index(name); Index(age)的话,MySQL查询优化器会自动选择一个索引来使用;MySQL选择哪个索引,可以这样来看:mysql> show index from photo;+-------+------------+-- 阅读全文
摘要:
如何让linux/Centos 32位支持8G内存?内核安装PAE支持大于4GB内存的方法。linux/Centos 32bit OS 默认不支持4G以上内存的,自己怎么没想到,Baidu了一下,找到了解决方法,安装一个kernel-PAE补丁就可以了,下面是几个步骤:[root@www.ctohome.com]# free total used free shared buffers cachedMem: 3881968 637928 3244040 0 111292 461680-/+ buffers/cache: 64956 3817012Swap: 4192924 0 4192924[ 阅读全文
摘要:
大部分Linux发行套件都有针对x86_64处理器的版本。比较典型的x86_64的处理器有ADM Athlon II和英特尔Xeon。因为这些Linux发行套件都有自己专用的软件源,这些软件源会为提供所有它所支持的应用软件的二进制包。如果你满足于Linux的安装方式,你可能不会需要运行32位的程序。 一些Linux商业软件,尤其是游戏,只提供32的版本。因为某些特殊的理由,你可能需要配置你的电脑来运行32位的软件。 安装32位的支持库 因为x86_64处理器是为x86技术涉及,所以它也是支持32位程序的。在Linux里,你所需要做的就是为这些软件安装必要的软件库。幸运的是,大部分Linux发行 阅读全文
摘要:
1. 查看内核版本命令:1) [root@q1test01 ~]# cat /proc/version Linux version 2.6.9-22.ELsmp (bhcompile@crowe.devel.redhat.com) (gcc version 3.4.4 200507213.4.4-2)) #1 SMP Mon Sep 19 18:00:54 EDT 20052) [root@q1test01 ~]# uname -a Linux q1test01 2.6.9-22.ELsmp #1 SMP Mon Sep 19 18:00:54 EDT 2005 x86_64 x86_64 x 阅读全文
摘要:
innodb_buffer_pool_size:这是InnoDB最重要的设置,对InnoDB性能有决定性的影响。默认的设置只有8M,所以默认的数据库设置下面InnoDB性能很差。在只有InnoDB存储引擎的数据库服务器上面,可以设置60-80%的内存。更精确一点,在内存容量允许的情况下面设置比InnoDB tablespaces大10%的内存大小。innodb_data_file_path:指定表数据和索引存储的空间,可以是一个或者多个文件。最后一个数据文件必须是自动扩充的,也只有最后一个文件允许自动扩充。这样,当空间用完后,自动扩充数据文件就会自动增长(以8MB为单位)以容纳额外的数据。例如 阅读全文
摘要:
mysql的行锁与表锁。(select* .... FOR UPDATE) MySQLmysql中使用select for update的必须针对InnoDb,并且是在一个事务中,才能起作用。select的条件不一样,采用的是行级锁还是表级锁也不一样。转http://www.neo.com.tw/archives/900的说明由於 InnoDB 預設是 Row-Level Lock,所以只有「明確」的指定主鍵,MySQL 才會執行 Row lock (只鎖住被選取的資料例) ,否則 MySQL 將會執行 Table Lock (將整個資料表單給鎖住)。舉個例子:假設有個表單 products 阅读全文
摘要:
Mysql InnoDB中的查询事务模式与锁定select ..for update在 InnoDB 的行锁中使用所谓的 next-key locking。这就意味着,除了索引记录外,InnoDB 还可以锁定该索引记录前部“间隙” ('gap') 以阻塞其它用户在索引记录前部的直接插入。next-key lock 意思是锁定一个索引记录以及该记录之前的间隙(gap)。gap lock 就是只锁定某些索引记录之前的间隙。Consistent read Consistent read 就是 InnoDB 使用它的多版本(multiversioning)方式提供给 阅读全文
摘要:
1. 事务处理和并发性 1.1. 基础知识和相关概念 1 )全部的表类型都可以使用锁,但是只有 InnoDB 和 BDB 才有内置的事务功能。 2 )使用 begin 开始事务,使用 commit 结束事务,中间可以使用 rollback 回滚事务。 3 )在默认情况下, InnoDB 表支持一致读。 SQL 标准中定义了 4 个隔离级别: read uncommited , read commited , repeatable read , serializable 。 read uncommited 即脏读,一个事务修改了一行,另一个事务也可以读到该行。 如果第一个事务执行了回滚,那么.. 阅读全文
摘要:
我们知道,在关系数据库标准中有四个事务隔离级别:未提交读(Read Uncommitted):允许脏读,也就是可能读取到其他会话中未提交事务修改的数据 提交读(Read Committed):只能读取到已经提交的数据。Oracle等多数数据库默认都是该级别 可重复读(Repeated Read):可重复读。在同一个事务内的查询都是事务开始时刻一致的,InnoDB默认级别。在SQL标准中,该隔离级别消除了不可重复读,但是还存在幻象读串行读(Serializable):完全串行化的读,每次读都需要获得表级共享锁,读写相互都会阻塞 查看InnoDB系统级别的事务隔离级别:mysql> SELE 阅读全文