网络编程
位置:首页>> 网络编程>> 数据库>> MySQL数据库中对前端和后台进行系统优化

MySQL数据库中对前端和后台进行系统优化

作者:狄克  发布时间:2009-01-04 13:39:00 

标签:

本文中介绍的系统优化,主要针对前端和后台这两方面(后台方面主要对SQL语句和数据存储进行了优化),下文中我们将介绍一些优化技巧和经验。

技巧:

1. 如何查出效率低的语句?

在MySQL下,在启动参数中设置 --log-slow-queries=[文件名],就可以在指定的日志文件中记录执行时间超过long_query_time(缺省为10秒)的SQL语句。你也可以在启动配置文件中修改long query的时间,如:

# Set long query time to 8 seconds

long_query_time=8

2. 如何查询某表的索引?

可使用SHOW INDEX语句,如:

SHOW INDEX FROM [表名]

3. 如何查询某条语句的索引使用情况?

可用EXPLAIN语句来看一下某条SELECT语句的索引使用情况。如果是UPDATE或DELETE语句,需要先转换为SELECT语句。
4. 如何把导出INNODB引擎的内容到错误日志文件中?

我们可以使用SHOW INNODB STATUS命令来查看INNODB引擎的很多有用的信息,如当前进程、事务、外键错误、死锁问题和其它一些统计数据。如何让该信息能记录在日志文件中 呢?只要使用如下语句创建innodb_monitor表,MySQL就会每15秒钟把该系统写入到错误日志文件中:

CREATE TABLE innodb_monitor (a INT) ENGINE=INNODB;

如果你不再需要导出到错误日志文件,只要删除该表即可:

DROP TABLE innodb_monitor;

5. 如何定期删除庞大的日志文件?

只要在启动配置文件中设置日志过期时间即可:

expire_logs_days=10

注意事项:

1. 重点关注索引

下面以表TSK_TASK表为例说明SQL语句优化过程。TSK_TASK表用于保存系统监测任务,相关字段及索引如下:

ID:主键;

MON_TIME:监测时间;建了索引;

STATUS_ID:任务状态;与SYS_HIER_INFO.ID建立了外键关系。

注MySQL自动会为外键建立索引,在本次优化过程中,发现这些自动建立的外键索引会对SQL语句的效率产生不必要的干扰,需要特别注意!

首先,我们在日志文件中查到下面语句的执行比较慢,超过10秒了:

# Query_time: 18 Lock_time: 0 Rows_sent: 295 Rows_examined: 88143

select * from TSK_TASK WHERE STATUS_ID = 1064 and MON_TIME >= '2007-11-22' and MON_TIME < '2007-11-23';

0
投稿

猜你喜欢

  • 由于代码比较短,这里就不进行注释了代码如下:<% '当目标页面的包含文件即#include的页面里边存在respon
  • 本文介绍了在js和asp中使用FileSystemObject(fso)来: 创建、添加或删除数据,以及读取文件; 移动、复制和删除文件;创
  • 写个小教程,以期能让大家对jQuery有所了解,甚至喜欢上它(请不要怪我)。不废话,先说明我们的目的。我们知道,当代浏览器(modern b
  •  window.opener 的用法 window.opener 返回的是创建当前窗口的那个窗口的引用,比如点击了a.htm上的一
  • 有2个不同的方法增加用户:通过使用GRANT语句或通过直接操作MySQL授权表。比较好的方法是使用GRANT语句,因为他们是更简明并且好像错
  • asp分页,是学习使用asp编程经常遇到的问题,也算是一个经典的问题。本文介绍了一个asp分页源代码例子,希望对初学者有所帮助,本程序文件名
  • 是不是很烦每次注册网站或填写相关资料时都要重来一遍?其实会有很多自动填写工具能代劳。比如使用 Mac, 在 Safari 的表单中,它可以足
  • 互联网充斥着枯燥的设计,惠普、IBM、戴尔、微软,以及其他数不尽的网站(相似的布局,相似的配色)。可能有人会说通过这样一种标准化的界面可以使
  • 对比Google Chrome、IE来说,在Windows环境下,Firefox 3.5的启动速度非常慢,据说是因为Firefox 3.5从
  • 这几天转了几个内容包含日语的贴,结果发现搜索数据库时出现“内存溢出”错误。上网搜索寻求答案未果。最后才发现这就是传说中的“日文 26 个片假
  • 本篇文档旨在介绍如何安装配置基于2台服务器的MySQL集群。并且实现任意一台服务器出现问题或宕机时MySQL依然能够继续运行。注意!虽然这是
  • 第一种方法:  代码如下:/* 创建链接服务器 */ exec sp_addlinkedserver 'srv_lnk&#
  • 在SQL Server 2005中,它的另外一个强大的新特点是数据库快照。数据库快照是一个数据库的只读副本,它是数据库所有数据的映射,由快照
  • 最好也是最简单的办法就是利用Cookie,而不必用到数据库。当然,你愿意用数据库也可以。下面就是利用Cookie来实现的:< 
  • 如何避免磁盘临时表因为内存储引擎不支持TEXT和BLOB数据类型, 使用到BLOB和TEXT列的查询和使用隐式临时表的查询将不得不使用MyI
  • 可以在Mac OS X 10.2.x(“Jaguar”)和以上版本上Mac OS X使用二进制安装软件包的PKG格式代替二进制分发版来安装M
  • VBSCRIPT中的日期,时间,星期函数很丰富,给我们使用带来了很大的方便,我个人使用最多的就是用now()来获取服务器的当前日期和时间。但
  • 以下所有代码全是在<head>...</head>之间,具体内容有:1,<title>…</tit
  • 数据库操作类在网上一搜一大把,我这并不比那些好,只是是自己写的,用着更习惯。所以我这个类没有什么特别的地方,只是自己用着习惯罢了,至于效率等
  • 有时候我们可能不知道一个用户的密码,但是又需要以这个用户做一些操作,又不能去修改掉这个用户的密码,这个时候,就可以利用一些小窍门,来完成操作
手机版 网络编程 asp之家 www.aspxhome.com