易截截图软件、单文件、免安装、纯绿色、仅160KB

[MySQL优化] 如何查找SQL效率地下的原因


[MySQL优化] -- 如何查找SQL效率地下的原因
时间:2010-2-28来源:HaCMS开源社区 作者:chusong
查询到效率低的 SQL 语句 后,可以通过 EXPLAIN 或者 DESC 命令获取 MySQL 如何执行 SELECT 语句的信息,包括在 SELECT 语句执行过程中表如何连接和连接的顺序,比如我们想计算 2006 年所有公司的销售额,需要关联 sales 表和 company 表,并且对 profit 字段做求和( s ...
查询到效率低的 SQL 语句 后,可以通过 EXPLAIN 或者 DESC 命令获取 MySQL 如何执行 SELECT 语句的信息,包括在 SELECT 语句执行过程中表如何连接和连接的顺序,比如我们想计算 2006 年所有公司的销售额,需要关联 sales 表和 company 表,并且对 profit 字段做求和( sum )操作,相应 SQL 的执行计划如下: 
mysql> explain select sum(profit) from sales a,company b where a.company_id = b.id and a.year = 2006\G; 
*************************** 1. row *************************** 
id: 1 
select_type: SIMPLE 
table: a 
type: ALL 
possible_keys: NULL 
key: NULL 
key_len: NULL 
ref: NULL 
rows: 12 
Extra: Using where 
*************************** 2. row *************************** 
id: 1 
select_type: SIMPLE 
table: b 
type: ALL 
possible_keys: NULL 
key: NULL 
key_len: NULL 
ref: NULL 
rows: 12 
Extra: Using where 
2 rows in set (0.00 sec) 
每个列的解释如下: 
Extra :执行情况的说明和描述。
在上面的例子中,已经可以确认是 对 a 表的全表扫描导致效率的不理想,那么 对 a 表的 year 字段创建索引,具体如下: 
mysql> create index idx_sales_year on sales(year); 
Query OK, 12 rows affected (0.01 sec) 
Records: 12 Duplicates: 0 Warnings: 0
创建索引后,这条语句的执行计划如下: 
mysql> explain select sum(profit) from sales a,company b where a.company_id = b.id and a.year = 2006\G; 
*************************** 1. row *************************** 
id: 1 
select_type: SIMPLE 
table: a 
type: ref 
possible_keys: idx_sales_year 
key: idx_sales_


相关文档:

mysql中的insert时注意自增长字段的写法

比如:
insert into User values(x1,x2,x3,x4),(x1,x2,x3,x4),(x1,x2,x3,x4)
这种写法,列数量必须和表中所有列保持一致,也就是说列都要列出来。
这个user表里面的一个字段x1是个自增长字段,则应该填null占位
insert into User values(null,x2,x3,x4),(null,x2,x3,x4),(null,x2,x3,x4)
否则会报错。 ......

mysql编译安装与参数

mysql 编译安装与编译参数
添加mysql组和mysql用户
 
[root@centos mysql]# groupadd mysql
[root@centos mysql]# useradd -g mysql mysql
 
编译与安装
 
tar -zxvf mysql-5.1.35.tar.gz
./configure \
--prefix=/usr/local/mysql \
--localstatedir=/data/mysql/data \    m ......

SQL Server 2005导入导出存储过程

1. 可以用脚本备份
  manger studio--右键你的数据库--任务--生成脚本
  在脚本生成向导的"选择对象类型"步骤中, 将"存储过程"选上, 在接下来的"选择存储过程"的步骤中, 选择所有的存储过程(或者你要复制的存储过程)
  完成后, 所有存储过程的脚本会生成在一个新的查询窗口中, 关掉生成脚本向导, 在生成的存储过程 ......

[MySQL优化] 如何使用SQL Profiler 性能分析器


[MySQL优化] -- 如何使用SQL Profiler 性能分析器
时间:2010-2-28来源:HaCMS开源社区 作者:diesou
mysql 的 sql 性能分析器主要用途是显示 sql 执行的整个过程中各项资源的使用情况。分析器可以更好的展示出不良 SQL 的性能问题所在。 下面我们举例介绍一下 MySQL SQL Profiler 的使用方法: 首先,开启 MySQL SQL ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号