优化MySQL服务器的配置参数,可以提高MySQL数据库的性能,但是对于配置较低的服务器来说,你无论怎么优化配置,都不会得到理想的效果,那就只能提高你硬件配置,来彻底有效地改善服务器的性能。
具体的方法如下:
一、在设置MySQL 时,应该配置其使用静态库而不是共享库。使用共享库的动态二进制系统可节省磁盘空间,但静态二进制系统更快(然而,如果希望装入用户自定义的函数,则不能使用静态二进制系统,因为UDF 机制依赖于动态连接)。
二、增加更快的磁盘以减少I/O 等待时间。寻道时间是这里决定性能的主要因素。逐字地移动磁头是很慢的,一旦磁头定位,从磁道读块则较快。
三、在不同的物理设备上设法重新分配磁盘活动。如果可能,应将您的两个最繁忙的数据库存放在不同的物理设备上。请注意,使用同一物理设备上的不同分区是不够的。这样没有帮助,因为它们仍将争用相同的物理资源(磁盘头)。
在将数据重新放到不同设备之前,应该保证了解该系统的装载特性。如果在特定的物理设备上已经有了某些特定的主要活动,将数据库放到该处实际上可能会使性能更坏。例如,不要把数据库移到处理大量Web 通信的Web 服务器设备上。
四、在机器中安装更多的内存。这样能够增加 ......
1)如果你安装的是系统自带的rpm包的情况:
修改 /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
port=3300 #修改成你自己想要的端口
socket=/var/lib/mysql/mysql.sock
[mysql.server]
user=mysql
basedir=/var/lib
[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
保存退出。
2)如果你安装的是其他源码包或者在同一服务器上安装多个mysqld服务的情况:
同样的配置,找出my.cnf 文件。添加port= 端口号
需要注意的是
[client]
port = 3300
这里也要改一下。 ......
MySQL从4.1开始支持SQL的子查询。这个技术可以使用SELECT语句来创建一个单列的查询结果,然后把这个结果作为过滤条件用在另一个查询中。例如,我们要将客户基本信息表中没有任何订单的客户删除掉,就可以利用子查询先从销售信息表中将所有发出订单的客户ID取出来,然后将结果传递给主查询,如下所示:
DELETE from customerinfo
WHERE CustomerID NOT in (SELECT CustomerID from salesinfo )
使用子查询可以一次性的完成很多逻辑上需要多个步骤才能完成的SQL操作,同时也可以避免事务或者表锁死,并且写起来也很容易。但是,有些情况下,子查询可以被更有效率的连接(JOIN).. 替代。例如,假设我们要将所有没有订单记录的用户取出来,可以用下面这个查询完成:
SELECT * from customerinfo
WHERE CustomerID NOT in (SELECT CustomerID from salesinfo )
如果使用连接(JOIN).. 来完成这个查询工作,速度将会快很多。尤其是当salesinfo表中对CustomerID建有索引的话,性能将会更好,查询如下:
SELECT * from customerinfo
LEFT JOIN salesinfoON customerinfo.CustomerID=salesinfo.
CustomerID
WHE ......
查询是数据库技术中最常用的操作。查询操作的过程比较简单,首先从客户端发出查询的SQL语句,数据库服务端在接收到由客户端发来的SQL语句后,执行这条SQL语句,然后将查询到的结果返回给客户端。虽然过程很简单,但不同的查询方式和数据库设置,对查询的性能将会有很在的影响。
因此,本文就在MySQL中常用的查询优化技术进行讨论。讨论的内容如:通过查询缓冲提高查询速度;MySQL对查询的自动优化;基于索引的排序;不可达查询的检测和使用各种查询选择来提高性能。
一、 通过查询缓冲提高查询速度
一般我们使用SQL语句进行查询时,数据库服务器每次在收到客户端发来SQL后,都会执行这条SQL语句。但当在一定间隔内(如1分钟内),接到完全一样的SQL语句,也同样执行它。虽然这样可以保证数据的实时性,但在大多数时候,数据并不要求完全的实时,也就是说可以有一定的延时。如果是这样的话,在短时间内执行完全一样的SQL就有些得不偿失。
幸好MySQL为我们提供了查询缓冲的功能(只能在MySQL 4.0.1及以上版本使用查询缓冲)。我们可以通过查询缓冲在一定程度上提高查询性能。
我们可以通过在MySQL安装目录中的my.ini文件设置查询缓冲。设置也非常简单,只需要将query_cache_typ ......
<!--#include file="zheboconn.asp"-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
<title>asp和mysql分页代码</title>
<style type="text/css">
<!--
.STYLE3 {
font-size: 15px;
font-family: "宋体";
color: #000000;
}
img{border:none}
.STYLE1 {
font-family: "文鼎CS中黑";
color: #ffffff;
font-size: 18px;
}
-->
</style>
</head>
<body scroll="no"> //去掉滚动条
<table width="97%" border="0" align="center" scroll="no">
<tr>
<td height="35" valign="top"><%
'asp+mysql分页
Dim strSql,Rs
Dim intRecordNum,intCurrentPage,intRowcount
Dim intPageCount:intPageCount = 5 '每页5条记录
intRowcount = 0
'获得总记录
Set Rs = Conn.Execute("SELECT COUNT(*) As intcounts from 表名") &nbs ......
<!--#include file="zheboconn.asp"-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
<title>asp和mysql分页代码</title>
<style type="text/css">
<!--
.STYLE3 {
font-size: 15px;
font-family: "宋体";
color: #000000;
}
img{border:none}
.STYLE1 {
font-family: "文鼎CS中黑";
color: #ffffff;
font-size: 18px;
}
-->
</style>
</head>
<body scroll="no"> //去掉滚动条
<table width="97%" border="0" align="center" scroll="no">
<tr>
<td height="35" valign="top"><%
'asp+mysql分页
Dim strSql,Rs
Dim intRecordNum,intCurrentPage,intRowcount
Dim intPageCount:intPageCount = 5 '每页5条记录
intRowcount = 0
'获得总记录
Set Rs = Conn.Execute("SELECT COUNT(*) As intcounts from 表名") &nbs ......
1.前面一篇文章详细介绍了如何在Windows下整合apache+mysql+php+tomcat,很简单,但是在Linux下就没这么容易了,需要手工的去写配置文件,网上的资料有很多,但是我根据他们的写法,一步一步的配置还是没能success!(可能是我个人的原因,不过,无论在Google还是baidu搜到的文章就那么几篇,这个转一下,那个转一下,最后都不成样子了)。所以今天继续发布Linux下整个教程~ 首先说明的是,沿袭前面的教程,这次整和还是利用xmapp,默认的情况下只要安装了他就把apache+mysql+php安装并配置完毕,所以不必自己去手工配置。再次对他们的安装配置不做介绍,因为只要一个解压命令就安装完成,相当的绿色~ 下一步安装tomcat,命令 tar xvzf apache-tomcat-6.0.16.tar.gz具体的安装目录以你而定了 安装完成后,用命令 (假设在根目录):tomcat/bin/startup.sh start启动tomcat,启动成功就进入下一步。 开始整合,本整合基本上对tomcat没做修改,只是对lampp目录中的Apache服务器进行修改。 首先确定你已经下载了jk_mod.so(我用的是最新的jk_2.8),并把它放到lampp/modules,并修改名称为mod_jk.so 下一步开始配置进入目录:etc 里面用到的文件有httpd.conf,mod_jk.conf,work ......
1.前面一篇文章详细介绍了如何在Windows下整合apache+mysql+php+tomcat,很简单,但是在Linux下就没这么容易了,需要手工的去写配置文件,网上的资料有很多,但是我根据他们的写法,一步一步的配置还是没能success!(可能是我个人的原因,不过,无论在Google还是baidu搜到的文章就那么几篇,这个转一下,那个转一下,最后都不成样子了)。所以今天继续发布Linux下整个教程~ 首先说明的是,沿袭前面的教程,这次整和还是利用xmapp,默认的情况下只要安装了他就把apache+mysql+php安装并配置完毕,所以不必自己去手工配置。再次对他们的安装配置不做介绍,因为只要一个解压命令就安装完成,相当的绿色~ 下一步安装tomcat,命令 tar xvzf apache-tomcat-6.0.16.tar.gz具体的安装目录以你而定了 安装完成后,用命令 (假设在根目录):tomcat/bin/startup.sh start启动tomcat,启动成功就进入下一步。 开始整合,本整合基本上对tomcat没做修改,只是对lampp目录中的Apache服务器进行修改。 首先确定你已经下载了jk_mod.so(我用的是最新的jk_2.8),并把它放到lampp/modules,并修改名称为mod_jk.so 下一步开始配置进入目录:etc 里面用到的文件有httpd.conf,mod_jk.conf,work ......
1.前面一篇文章详细介绍了如何在Windows下整合apache+mysql+php+tomcat,很简单,但是在Linux下就没这么容易了,需要手工的去写配置文件,网上的资料有很多,但是我根据他们的写法,一步一步的配置还是没能success!(可能是我个人的原因,不过,无论在Google还是baidu搜到的文章就那么几篇,这个转一下,那个转一下,最后都不成样子了)。所以今天继续发布Linux下整个教程~ 首先说明的是,沿袭前面的教程,这次整和还是利用xmapp,默认的情况下只要安装了他就把apache+mysql+php安装并配置完毕,所以不必自己去手工配置。再次对他们的安装配置不做介绍,因为只要一个解压命令就安装完成,相当的绿色~ 下一步安装tomcat,命令 tar xvzf apache-tomcat-6.0.16.tar.gz具体的安装目录以你而定了 安装完成后,用命令 (假设在根目录):tomcat/bin/startup.sh start启动tomcat,启动成功就进入下一步。 开始整合,本整合基本上对tomcat没做修改,只是对lampp目录中的Apache服务器进行修改。 首先确定你已经下载了jk_mod.so(我用的是最新的jk_2.8),并把它放到lampp/modules,并修改名称为mod_jk.so 下一步开始配置进入目录:etc 里面用到的文件有httpd.conf,mod_jk.conf,work ......