· InnoDB和BDB引擎拥有自己的用于缓冲数据和索引值的缓存。它们的大小是由innodb_buffer_pool_size和bdb_cache_size变量控制的。InnoDB引擎还维护了一个日志缓冲。innodb_log_buffer_size变量可以控制它的大小。
· 另一个专用的缓存是查询缓存,我们在"使用查询缓存"部分中解释。
当你改变这些参数值的时候,应该遵循下面一些原则:
· 每次只改变一个参数。如果你一次改变多个相互独立的变量,那么就很难评估每种改变的效果了。
· 逐渐地增加系统变量值。根据理论,数量越多,性能越好,但是如果你使某个变量变得太大了,有可能造成系统资源匮乏,导致逆向效果,降低速度。
· 不要在运行业务MySQL数据库的服务器上做调整参数的实验,最好建立一个独立的测试服务器。
· 为了大致了解哪种参数变量可能适合自己的系统,你可以查看MySQL发布文档中包含的my-small.cnf、my-medium.cnf、my-large.cnf和my-huge.cnf选项文件(在Unix系统上,你可以在源发布文件的支持文件目录和二进制发布文件的共享目录总找到这些文件。在Windows上,它们位于基本的安装目录中,其扩展名可能是.ini)。这些文件可能让你知道最好改变服务器上的那些参数以适应不同的使用层次,并且为这些参数提供了一些典型值。
用于提高服务器的操作性能的其它一些策略还包括:
禁止不需要的存储引擎。服务器不会为禁止的引擎分配任何
内存,因此我们可以利用这一点。如果从源文件建立MySQL,那么在配置的时候,大多数存储引擎就可以被排除在服务器之外。对于那些包含在服务器中的引擎来说,使用适当的启动选项可以在运行时禁止其中的大多数。
保持授权表许可的简单性。尽管服务器在
内存中缓存了授权表内容,但是如果你在tables_priv或columns_priv表中有一些数据行的话,服务器就必须为每个查询语句检查表层次和列层次的权限。如果这些表是空的,那么服务器就能优化自己的权限检查过程,略过这些层次。
如果你从源文件建立MySQL,那么就把它配置为使用静态类库,而不要使用共享类库。使用共享类库的动态二进制文件节约磁盘空间,然而静态二进制文件速度更快。但是,如果你使用了用户自定义函数(UDF)机制,那么有些系统要求使用动态链接。在这类系统上,静态二进制文件不能工作。
上一页 [1] [2] [3] [4] [5] 下一页
关注此文的读者还看过: