社区
MySQL
帖子详情
存储过程会全表查询吗?
pang20c
2011-09-15 11:59:32
看过一个优化文章说 where子语句中带参数就会导致全表查询 那存储过程中的查询语句不可避免的会带上参数条件啊?这会全表查询吗?
...全文
212
7
打赏
收藏
存储过程会全表查询吗?
看过一个优化文章说 where子语句中带参数就会导致全表查询 那存储过程中的查询语句不可避免的会带上参数条件啊?这会全表查询吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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语句
SQL Server 2016
查询
(二)
本课程基于微软新的SQL Server 2016,真正的初级带你进入数据库的大门,从数据库的安装配置开始,逐步讲述了创建数据库、数据表,基础
查询
、
查询
、子
查询
、数据库完整性、视图、索引、
存储过程
、游标、函数、触发器...
什么是回表
查询
?如何避免回表
查询
?
在聚集索引中,B+树上
会
存储这一行的全部数据,但是非聚集索引只
会
存储该列对应的值和相应行的主键。 是不是聚集索引的定义与主键索引很像? 其实就是的,当我们没有定义主键索引时,MYSQL
会
指定从左到有的第一个加...
sql server
查询
时
会
锁表吗?
sql server
查询
时
会
锁表吗? sql server在执行
查询
语句时
会
锁表。在锁表期间禁止增删改操作。 如果不想锁表,那就再表名或别名后面加上WITH(NOLOCK) 如下所示: SELECT Id FROM dbo.T_Table WITH(NOLOCK) ...
mysql
存储过程
的多表
查询
#创建学生表 create table st_table( id int auto_increment primary key, name varchar(10), sex varchar(1) ); #创建学生选修课信息表 create table course_table( id int, course1 varchar(20) default null...
mysql怎么编写模糊搜索的
存储过程
_MYSQL中利用
存储过程
实现模糊
查询
今做数据库课程设计时,课设要求利用
存储过程
实现模糊
查询
。第一次听到这样的要求感觉很荒谬,
会
不
会
是要求写错了。在此我为我的无知感到羞愧。废话不多说,接下来我们讲一下在MYSQL数据库中如何利用
存储过程
实现...
MySQL
56,679
社区成员
56,709
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章