存储过程会全表查询吗?

pang20c 2011-09-15 11:59:32
看过一个优化文章说 where子语句中带参数就会导致全表查询 那存储过程中的查询语句不可避免的会带上参数条件啊?这会全表查询吗?
...全文
212 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rotel-刘志东 2011-09-20
  • 打赏
  • 举报
回复
执行计划explain
聪明的一休 2011-09-15
  • 打赏
  • 举报
回复
建议楼主首先先具备测试,学习的能力

然后对应类似的优化文章只要自己验证一下即可,这样才算获得自己的知识,而不要跟着别人人云亦云。
ACMAIN_CHM 2011-09-15
  • 打赏
  • 举报
回复
[Quote]7.2. 优化SELECT语句和其它查询
7.2.1. EXPLAIN语法(获取SELECT相关信息)
7.2.2. 估计查询性能
7.2.3. SELECT查询的速度
7.2.4. MySQL怎样优化WHERE子句
7.2.5. 范围优化
7.2.6. 索引合并优化
7.2.7. MySQL如何优化IS NULL
7.2.8. MySQL如何优化DISTINCT
7.2.9. MySQL如何优化LEFT JOIN和RIGHT JOIN
7.2.10. MySQL如何优化嵌套Join
7.2.11. MySQL如何简化外部联合
7.2.12. MySQL如何优化ORDER BY
7.2.13. MySQL如何优化GROUP BY
7.2.14. MySQL如何优化LIMIT
7.2.15. 如何避免表扫描
7.2.16. INSERT语句的速度
7.2.17. UPDATE语句的速度
7.2.18. DELETE语句的速度
7.2.19. 其它优化技巧
首先,影响所有语句的一个因素是:你的许可设置得越复杂,所需要的开销越多。

执行GRANT语句时使用简单的许可,当客户执行语句时,可以使MySQL降低许可检查开销。例如,如果未授予任何表级或列级权限,服务器不需要检查tables_priv和columns_priv表的内容。同样地,如果不对任何 账户进行限制,服务器不需要对资源进行统计。如果查询量很高,可以花一些时间使用简化的授权结构来降低许可检查开销。

如果你的问题是与具体MySQL表达式或函数有关,可以使用mysql客户程序所带的BENCHMARK()函数执行定时测试。其语法为BENCHMARK(loop_count,expression)。例如:

mysql> SELECT BENCHMARK(1000000,1+1);
+------------------------+
| BENCHMARK(1000000,1+1) |
+------------------------+
| 0 |
+------------------------+
1 row in set (0.32 sec)
上面结果在PentiumII 400MHz系统上获得。它显示MySQL在该系统上在0.32秒内可以执行1,000,000个简单的+表达式运算。

所有MySQL函数应该被高度优化,但是总有可能有一些例外。BENCHMARK()是一个找出是否查询有问题的优秀的工具。

7.2.1. EXPLAIN语法(获取SELECT相关信息)
EXPLAIN tbl_name
或:

EXPLAIN [EXTENDED] SELECT select_options
EXPLAIN语句可以用作DESCRIBE的一个同义词,或获得关于MySQL如何执行SELECT语句的信息:

· EXPLAIN tbl_name是DESCRIBE tbl_name或SHOW COLUMNS FROM tbl_name的一个同义词。

· 如果在SELECT语句前放上关键词EXPLAIN,MySQL将解
[/Quote]
ACMAIN_CHM 2011-09-15
  • 打赏
  • 举报
回复
[Quote]看过一个优化文章说 where子语句中带参数就会导致全表查询[/Quote]无稽之谈 所以后面的结论也就不成立了。
Lemon2050 2011-09-15
  • 打赏
  • 举报
回复
SET STATISTICS PROFILE ON
SET STATISTICS IO ON
SET STATISTICS TIME ON
go
你的存储过程执行语句
go
SET STATISTICS PROFILE OFF
SET STATISTICS IO OFF
SET STATISTICS TIME OFF
go

你可以用上面的语句来测试存储过程究竟会不会全表查询。
rucypli 2011-09-15
  • 打赏
  • 举报
回复
explain看下
wwwwb 2011-09-15
  • 打赏
  • 举报
回复
EXPLAIN SQL语句

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧