Linux下的MySQL性能调优-让你的MySQL运行的更快
Posted on 九月 5th, 2010 by zxing数据库在WEB系统中充当了极其重要的角色,它的性能直接关系到整个服务器的性能,此文并非完全我自己的创作但也包含了我自己的一些体会,在这里权作记录下来留给自己以后继续研究也分享给更多的朋友。
数据库在WEB系统中充当了极其重要的角色,它的性能直接关系到整个服务器的性能,此文并非完全我自己的创作但也包含了我自己的一些体会,在这里权作记录下来留给自己以后继续研究也分享给更多的朋友。
innodb_buffer_pool_size对Innodb表来说非常重要。Innodb相比MyISAM表对缓冲更为敏感。MyISAM可以在默认的 key_buffer_size 设置下运行的可以,然而Innodb在默认的 innodb_buffer_pool_size 设置下却跟蜗牛似的。由于Innodb把数据和索引都缓存起来,无需留给操作系统太多的内存,因此如果只需要用Innodb的话则可以设置它高达 70-80% 的可用内存。如果你的数据量不大,并且不会暴增,那么无需把 innodb_buffer_pool_size 设置的太大了。
可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单据对应多个实体,或多张原始单据对应一个实体。这里的实体可以理解为基本表。明确这种对应关系后,对我们设计录入界面大有好处。
触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由个事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。
在MySQL 3.23.44版本后,InnoDB引擎类型的表支持了外键约束。
1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持);
2.外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显示建立;
TINYINT
-128 – 127
TINYINT UNSIGNED
0 – 255
PHP默认以文件方式存储SESSION信息,一旦用户自定义session文件存储路径PHP便不会主动去清理已经过期的SESSION文件,当网站运行时间久了和同时访问量大了的时候都会给服务器的文件系统很大的压力,如果你的内存足够大使用memcache将session信息存储在内存中则有效的解决了文件存储的问题。
back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。只有如果期望在一个短时间内有很多连接,你需要增加它,换句话说,这值对到来的TCP/IP连接的侦听队列的大小。你的操作系统在这个队列大小上有它自己的限制。试图设定back_log高于你的操作系统的限制将是无效的。
在my.ini里找到
sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”
把其中的STRICT_TRANS_TABLES,去掉,