摘要: 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;+-------+------------+-- 阅读全文
posted @ 2012-02-21 21:34 Lunaa 阅读(432) 评论(0) 推荐(0)
摘要: 如何让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[ 阅读全文
posted @ 2012-02-21 15:32 Lunaa 阅读(581) 评论(0) 推荐(0)
摘要: 大部分Linux发行套件都有针对x86_64处理器的版本。比较典型的x86_64的处理器有ADM Athlon II和英特尔Xeon。因为这些Linux发行套件都有自己专用的软件源,这些软件源会为提供所有它所支持的应用软件的二进制包。如果你满足于Linux的安装方式,你可能不会需要运行32位的程序。 一些Linux商业软件,尤其是游戏,只提供32的版本。因为某些特殊的理由,你可能需要配置你的电脑来运行32位的软件。 安装32位的支持库 因为x86_64处理器是为x86技术涉及,所以它也是支持32位程序的。在Linux里,你所需要做的就是为这些软件安装必要的软件库。幸运的是,大部分Linux发行 阅读全文
posted @ 2012-02-21 15:14 Lunaa 阅读(2042) 评论(0) 推荐(0)
摘要: 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 阅读全文
posted @ 2012-02-21 14:14 Lunaa 阅读(195) 评论(0) 推荐(0)
摘要: innodb_buffer_pool_size:这是InnoDB最重要的设置,对InnoDB性能有决定性的影响。默认的设置只有8M,所以默认的数据库设置下面InnoDB性能很差。在只有InnoDB存储引擎的数据库服务器上面,可以设置60-80%的内存。更精确一点,在内存容量允许的情况下面设置比InnoDB tablespaces大10%的内存大小。innodb_data_file_path:指定表数据和索引存储的空间,可以是一个或者多个文件。最后一个数据文件必须是自动扩充的,也只有最后一个文件允许自动扩充。这样,当空间用完后,自动扩充数据文件就会自动增长(以8MB为单位)以容纳额外的数据。例如 阅读全文
posted @ 2012-02-21 11:10 Lunaa 阅读(267) 评论(0) 推荐(0)
摘要: 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 阅读全文
posted @ 2012-02-21 11:08 Lunaa 阅读(296) 评论(0) 推荐(0)
摘要: Mysql InnoDB中的查询事务模式与锁定select ..for update在 InnoDB 的行锁中使用所谓的 next-key locking。这就意味着,除了索引记录外,InnoDB 还可以锁定该索引记录前部“间隙” ('gap') 以阻塞其它用户在索引记录前部的直接插入。next-key lock 意思是锁定一个索引记录以及该记录之前的间隙(gap)。gap lock 就是只锁定某些索引记录之前的间隙。Consistent read Consistent read 就是 InnoDB 使用它的多版本(multiversioning)方式提供给 阅读全文
posted @ 2012-02-21 11:06 Lunaa 阅读(484) 评论(0) 推荐(0)
摘要: 1. 事务处理和并发性 1.1. 基础知识和相关概念 1 )全部的表类型都可以使用锁,但是只有 InnoDB 和 BDB 才有内置的事务功能。 2 )使用 begin 开始事务,使用 commit 结束事务,中间可以使用 rollback 回滚事务。 3 )在默认情况下, InnoDB 表支持一致读。 SQL 标准中定义了 4 个隔离级别: read uncommited , read commited , repeatable read , serializable 。 read uncommited 即脏读,一个事务修改了一行,另一个事务也可以读到该行。 如果第一个事务执行了回滚,那么.. 阅读全文
posted @ 2012-02-21 11:02 Lunaa 阅读(147) 评论(0) 推荐(0)
摘要: 我们知道,在关系数据库标准中有四个事务隔离级别:未提交读(Read Uncommitted):允许脏读,也就是可能读取到其他会话中未提交事务修改的数据 提交读(Read Committed):只能读取到已经提交的数据。Oracle等多数数据库默认都是该级别 可重复读(Repeated Read):可重复读。在同一个事务内的查询都是事务开始时刻一致的,InnoDB默认级别。在SQL标准中,该隔离级别消除了不可重复读,但是还存在幻象读串行读(Serializable):完全串行化的读,每次读都需要获得表级共享锁,读写相互都会阻塞 查看InnoDB系统级别的事务隔离级别:mysql> SELE 阅读全文
posted @ 2012-02-21 10:56 Lunaa 阅读(127) 评论(0) 推荐(0)
摘要: 7 MySQL 事务与锁定命令7.1 BEGIN/COMMIT/ROLLBACK 句法缺省的,MySQL 运行在 autocommit 模式。这就意味着,当你执行完一个更新时,MySQL 将立刻将更新存储到磁盘上。 如果你使用事务安全表 (例如 InnoDB、BDB),通过下面的命令,你可以设置 MySQL 为非 autocommit 模式: SET AUTOCOMMIT=0在此之后,你必须使用 COMMIT 来存储你的更改到磁盘上,或者使用 ROLLBACK ,如果你希望忽略从你的事务开始所做的更改。如果你希望为一系列语句从 AUTOCOMMIT 模式转换,你可以使用 START TRANS 阅读全文
posted @ 2012-02-21 10:52 Lunaa 阅读(222) 评论(0) 推荐(0)
摘要: 如何为 MySQL 选择更合适的服务器硬件PHP5研究室 2008年05月02日 06:06查看3233次作者: esayr 【大中 小】文章分类:WEB架构 DBA notes 的 Fenng 老大发了一篇为 MySQL 选择更合适的硬件的文章,我转摘过来,并根据自己的使用习惯做了点评.以下部分,红色字体为我的话.-------------------------------------------- 分割线 ----------------------------------------MySQL 爱好者关注的 2008 MySQL Conference & Expo 落幕后,很多 阅读全文
posted @ 2012-02-21 10:30 Lunaa 阅读(292) 评论(0) 推荐(0)
摘要: 1,硬件优化 a>内存——大内存、大内存位宽,尽量不要用SWAP; b>硬盘——15000RPM、RAID5、raid10 c>CPU——64位、高主频、高缓存,高并行处理能力 d>网络——标配的千兆网卡足矣,尽可能在同一局域网内,尽量避免诸如防火墙策略等不必要的开销2,架构上的优化 a>纵向拆解 最简单的一台服务同时负责web、中间件、数据库多个角色;纵向拆解后就是数据库服务器专机专用,避免额外的服务可能导致的性能下降和不稳定性;如果将数据库服务器专机专用仍然无法满足需求,可以考虑在数据库和应用服务器之间加Memcached。 b>横向拆解 主从同步、负载 阅读全文
posted @ 2012-02-21 10:25 Lunaa 阅读(154) 评论(0) 推荐(0)