欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

LAMP服务器性能优化技巧之Mysql优化

程序员文章站 2023-11-26 12:40:52
apache服务器优化、php优化、mysql优化 对于程序开发人员而言,目前使用最流行的两种后台数据库即为mysql and sql server。这两者最基本的相似之...
apache服务器优化php优化、mysql优化

对于程序开发人员而言,目前使用最流行的两种后台数据库即为mysql and sql server。这两者最基本的相似之处在于数据存储和属于查询系统。如果你想建立一个.net服务器体系,这一体系可以从多个不同平台访问数据,参与数据库的管理,那么你可以选用sql server服务器。如果你想建立一个第三方动态网站,从这一站点可以从一些客户端读取数据,那么mysql将是一个不错的选择。

1、编译和安装mysql

通过你的系统挑选可能最好的编译器,你通常可以获得10-30%的性能提高。在linux/intel平台上,用pgcc(gcc的奔腾芯片优化版)编译mysql。然而,二进制代码将只能运行在intel奔腾cpu上。 对于一种特定的平台,使用mysql参考手册上推荐的优化选项。用你将使用的字符集编译mysql。 静态编译生成mysqld的执行文件(用--with-mysqld-ldflags=all-static)并用strip sql/mysqld整理最终的执行文件。 注意,既然mysql不使用c++扩展,不带扩展支持编译mysql将赢得巨大的性能提高。

2、优化表

mysql拥有一套丰富的类型。应该对每一列尝试使用最有效的类型。analyse过程可以帮助你找到表的最优类型:select * from table_name procedure analyse()。对于不保存null值的列使用not null,这对你想索引的列尤其重要。 将isam类型的表改为myisam。用固定的表格式创建表。

3、正确使用索引

索引用来快速地寻找那些具有特定值的记录,所有mysql索引都以b-树的形式保存。如果没有索引,执行查询时mysql必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍。

假设我们创建了一个名为people的表:

create table people ( peopleid smallint not null, name char(50) not null );   

然后,我们完全随机把1000个不同name值插入到people表。

但是索引也是有缺点的,首先,索引要占用磁盘空间。通常情况下,这个问题不是很突出。但是,如果你创建每一种可能列组合的索引,索引文件体积的增长速度将远远超过数据文件。如果你有一个很大的表,索引文件的大小可能达到操作系统允许的最大文件限制。如果mysql能估计出它将可能比扫描整张表还要快时,则不使用索引。另外,对于需要写入数据的操作,比如delete、update操作,索引会降低它们的速度。这是因为mysql不仅要把改动数据写入数据文件,而且它还要把这些改动写入索引文件。

4、 减少使用字符集编译mysql

mysql目前提供多达24种不同的字符集(许多语言版本),为全球用户以他们自己的语言插入或查看表中的数据。缺省情况下,mysql安装所有者这些字符集,所以最好的选择是安装一两种你需要的就可以了(中文、英文)。

总结:本文介绍了如何在现有硬件条件下提高系统性能,网络管理员充分了解自己的计算机和网络,从而找到真正的瓶颈所在。在预算短缺的今天,理解如何优化系统性能比以往任何时候都重要。一味地硬件投资并不是能够让人们接受的办法,而且还也不一定生效。

以上就是lamp服务器性能优化技巧,文章到此结束。您的lamp服务器优化好没呢?