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和系统的负载。

时间: 2024-09-21 15:13:54

Mysql中两个有用的sql性能分析语句的相关文章

查询mysql中执行效率低的sql语句的方法_Mysql

一些小技巧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语句,如: 复制代码 代码如

MySQL中两表UNION查询实例介绍

一,union查询用法 union查询比较简单,就好像把两张表合并了,字段也合成一块 假如是 select * from table1, table2 的话,两个的相同的字段不会合并但 select a1 from table1 union select a1 from table2 这样的话就可以把两个表的a1合成一个 上面不知道你看明白了,没有我们接着看实例 一使用SELECT子句进行多表查询 SELECT 字段名 FROM 表1,表2 - WHERE 表1.字段 = 表2.字段 AND 其

mysql中IN,OR,BETWEEN性能比较

微博上看到@金山 提到了一个MySQL中的一个性能问题,    代码如下 复制代码 select id from table where id > 100 and id < 200 和 select id from table where id = 101 or id = 103 or id = 104 or id = 105 or id = ...   哪个更快?   这里的查询条件有三种:between,or 和 in.这里id列是索引列,如果不是的话,三个查询都是全表扫描,性能差距应该不

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

[硬件配置] CPU : AMD2500+ (1.8G) 内存: 1G/现代 硬盘: 80G/IDE [软件配置] OS : Windows XP SP2 SE : PHP5.2.1 DB : MySQL5.0.37 Web: IIS6 [MySQL表结构] CREATE TABLE `myisam` ( `id` int(11) NOT NULL auto_increment, `name` varchar(100) default NULL, `content` text, PRIMARY

mysql中导入/导出超大的sql文本文件方法总结

在实际工作中,有时经常地时行mysql数据库的导入和导入操作,但对于大型sql文件导入时,phpmyadmin是不行的,有太多限制,比如记录,内存等! 多种方案收集,如下: 方案一:客户端直接命令操作(此方法是我比较喜欢的) 刚恢复一个电商网站mysql备份数据,此备份文件有300多M,因为phpmyadmin支持上传有限,文件太大IE停止响应,所以在本地用  代码如下 复制代码 mysql -u root -p root jiahuibuydb< c:/yebihai.sql 但没导入进去,出

mysql中create命令建表sql语句

MySQL中create table语句的基本语法是:  代码如下 复制代码 CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)]  [table_options] [select_statement]  TEMPORARY:该关键字表示用MySQL create table新建的表为临时表,此表在当前会话结束后将自动消失.临时表主要被应用于存储过程中,对于目前尚不支持存储过程的MySQL,该关键字

MySQL中两种快速创建空表的方式的区别

在MySQL中有两种方法 1.create table t_name select ... 2.create table t_name like ... 第一种会取消掉原来表的有些定义,且引擎是系统默认引擎. 手册上是这么讲的:Some conversion of data types might occur. For example, the AUTO_INCREMENT attribute is not preserved, and VARchar columns can become ch

mysql中mysqldump 导出单个表数据与结构语句

mysqldump   备份命令 -uroot   root用户 -p123456   密码为123456 mydb   表所在的数据库mydb mytb     将要导出的表mytb > /opt/mytb.sql   备份到mytb.sql中 导出整个数据库database  代码如下 复制代码 mysqldump –opt -uroot -ppassword database > dump.sql ? 该如何导出? 导出单个数据表table  代码如下 复制代码 mysqldump –o

MYSQL中获取得最后一条记录的语句_Mysql

在MySQL中,使用auto_increment类型的id字段作为表的主键,并用它作为其他表的外键,形成"主从表结构",这是数据库设计中常见的用法.但是在具体生成id的时候,我们的操作顺序一般是:先在主表中插入记录,然后获得自动生成的id,以它为基础插入从表的记录.这里面有个困难,就是插入主表记录后,如何获得它对应的id.通常的做法,是通过"select max(id) from tablename"的做法,但是显然这种做法需要考虑并发的情况,需要在事务中对主表加以