Mysql中两个有用的sql性能分析语句

By | 03月14日
Advertisement

Mysql中两个有用的sql性能分析语句

1> explain SQL,类似于Oracle中explain语句
例如:explain select * from nad_aditem;

2> select benchmark(count,sql);计算sql语句执行count次所花费的时间
例如:

mysql> select benchmark(1000,"SELECT * FROM AD");
+----------------------------------------+
| benchmark(1000,"SELECT * FROM AD") |
+----------------------------------------+
| 0 |
+----------------------------------------+
1 row in set (0.02 sec)

注意观察0.02这个时间,而且不能仅仅关注这个时间,还要观察CPU和系统的负载。

Similar Posts:

  • MySQL中查看自带的SQL模式

    MySQL中查看自带的SQL模式 Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9450 Server version: 5.6.24-log MySQL Community Server (GPL) Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights rese

  • 从网上搜集了两篇关于数据库分页性能分析总结

    从网上搜集了两篇关于数据库分页性能分析总结的文章,分页方式大同小异. 第一篇.转载自comaple 的博客 本试验在于探讨分页的性能问题,当然客户端分页也是一种分页的策略.不过这种分页方式已经过时了,建议不要采用.这里我们只讨论服务器端分页. 实验环境: Pentium(R) dual-Core CPU E5300 @ 2.6GHz 2.59GHz, 2.00GB内存 SqlServer2008 数据库环境,数据库中我们要用到的的表: dbo.GMpipe CREATE TABLE [dbo].

  • MySQL中MyISAM引擎与InnoDB引擎性能比较

    MySQL表结构 CREATE TABLE `myisam` ( `id` int(11) NOT NULL auto_increment, `name` varchar(100) default NULL, `content` text, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=gbk; CREATE TABLE `innodb` ( `id` int(11) NOT NULL auto_increment, `name` varc

  • MySQL中MyISAM引擎与InnoDB引擎性能简单测试-2

    来源:网海拾贝 [总结] 可以看出在MySQL 5.0里面,MyISAM和InnoDB存储引擎性能差别并不是很大,针对InnoDB来说,影响性能的主要是 innodb_flush_log_at_trx_commit 这个选项,如果设置为1的话,那么每次插入数据的时候都会自动提交,导致性能急剧下降,应该是跟刷新日志有关系,设置为0效率能够看到明显提升,当然,同样你可以SQL中提交"SET AUTOCOMMIT = 0"来设置达到好的性能.另外,还听说通过设置innodb_buffer_p

  • mysql中插入更新一步到位的sql

    在操作数据库,insert数据的时候,经常要根据id或者其他的一些信息来判断,当前数据表中是否已经有了该条实体的信息,然后根据是否存在两种情况再选择不同的操作.比如:往shopsping中的item表添加一条item的信息时,经常性的判断在原表中是否已经存在该item是否已经存在,如果存在,执行update操作:如果不存在,执行insert操作. 这样,代码实现起来整体代码显得比较负责,在我们使用mysql数据库时,其实可以采用一条sql语句来简化代码. 例如,我们要实现:当表中已经存在该条it

  • Mysql中一些比较有用的命令

    在学习Mysql的过程中,总结了一些比较有用简单的命令,记下来以后使用 1. 建表的几种方式 crate table chen_bak ( name varchar(20), age int ) create table chen_bak like chen ; //创建表结构,不同步数据 create table chen_bak as chen; 2. 蠕虫复制 insert into chen_bak ( select * from chen_bak) 多条插入 insert into c

  • 在mysql中修改表名的sql语句

    在使用mysql时,经常遇到表名不符合规范或标准,但是表里已经有大量的数据了,如何保留数据,只更改表名呢? 可以通过建一个相同的表结构的表,把原来的数据导入到新表中,但是这样视乎很麻烦. 能否简单使用一个SQL语句就搞定呢?当然可以,mysql5.0下我们使用这样的SQL语句就可以了. ALTER TABLE table_name RENAME TO new_table_name 例如 ALTER TABLE admin_user RENAME TO a_us

  • Informix中两表关联Update SQL

    由于接手一个的项目认识到了Informix,一个比较非主流的数据库. 现有两张表: A {ID,TYPE} / B {ID,TYPE} 需要实现: 将A表中与B表ID相同的记录的A表字段type更新为B表字段type值. SQL写法: Update A set A.type= (select B.type from B where B.ID= A.ID) where exits (select 1 from B where B.ID = A.ID); 注意问题:Informix中Update操作

  • 在mysql中修改表名的sql语句(转)

    在使用mysql时,经常遇到表名不符合规范或标准,但是表里已经有大量的数据了,如何保留数据,只更改表名呢? 可以通过建一个相同的表结构的表,把原来的数据导入到新表中,但是这样视乎很麻烦. 能否简单使用一个SQL语句就搞定呢?当然可以,mysql5.0下我们使用这样的SQL语句就可以了. ALTER TABLE table_name RENAME TO new_table_name 例如 ALTER TABLE admin_user RENAME TO a_user

  • MYSQL 中两个表的数据清洗问题

    两个表分别都有两个相同的字段比如A表有cityId,cityName.B表也有cityId,cityName. B表的cityId和cityName都有值.A表有大量数据cityId有值且值都包含在A表.cityName为空.如何去根据B表填充A表的cityName? --cut-- 开飞机的小蜗牛在2015-07-16 18:14:32回答到: update A join B set A.cityName=B.cityName on A.cityId=B.cityId 光头哥在2015-07-

Tags: