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
投稿

猜你喜欢

  • python 点云地面点滤波-progressive TIN densification(PTD)算法介绍

    2023-05-26 17:50:55
  • 使用python计算方差方式——pandas.series.std()

    2022-05-24 14:03:35
  • CentOS6.9下mysql 5.7.17安装配置方法图文教程

    2024-01-23 12:26:03
  • python+matplotlib绘制3D条形图实例代码

    2022-05-03 16:36:56
  • python 生成xml文件,以及美化的实例代码

    2023-05-14 23:01:22
  • 一篇文章弄懂PHP和HTML的嵌套写法

    2023-06-20 04:51:22
  • jQuery+php简单实现全选删除的方法

    2023-11-05 20:23:38
  • 2020最新pycharm汉化安装(python工程狮亲测有效)

    2021-08-16 15:41:57
  • windows系统中Python多版本与jupyter notebook使用虚拟环境的过程

    2022-11-28 13:24:01
  • 浅谈django开发者模式中的autoreload是如何实现的

    2022-04-03 17:22:04
  • django从请求到响应的过程深入讲解

    2021-08-09 19:41:06
  • Python os模块常用方法和属性总结

    2021-05-06 13:46:12
  • 运用TensorFlow进行简单实现线性回归、梯度下降示例

    2022-03-02 10:30:15
  • 如何让IIS支持wap,让ASP生成wml

    2008-05-18 13:42:00
  • vant之van-list的使用及踩坑记录

    2023-07-02 16:48:41
  • mysql 数据库安装经验问题汇总

    2024-01-28 11:55:29
  • 由黄钻等级图标处理引发的思考

    2009-11-16 12:37:00
  • go按行读取文件的三种实现方式汇总

    2024-04-25 15:08:15
  • 细品Dreamweaver MX 2004内建FW技术

    2010-09-02 12:38:00
  • 对Python3之方法的覆盖与super函数详解

    2023-08-25 19:05:28
  • asp之家 网络编程 m.aspxhome.com