mysql 查询语句优化

mysql 查询语句优化

ID:16657347

大小:28.50 KB

页数:8页

时间:2018-08-23

mysql 查询语句优化_第1页
mysql 查询语句优化_第2页
mysql 查询语句优化_第3页
mysql 查询语句优化_第4页
mysql 查询语句优化_第5页
资源描述:

《mysql 查询语句优化》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、4、索引使用的常数表达式仅计算一次。  5、在一个单个表上的没有一个WHERE的COUNT(*)直接从表中检索信息。当仅使用一个表时,对任何NOTNULL表达式也这样做。  6、无效常数表达式的早期检测。MySQL快速检测某些SELECT语句是不可能的并且不返回行。  7、如果你不使用GROUPBY或分组函数(COUNT()、MIN()……),HAVING与WHERE合并。  8、为每个子联结(subjoin),构造一个更简单的WHERE以得到一个更快的WHERE计算并且也尽快跳过记录。  9、所有常数的表在查询中的任何其他表前被首先读出。一个常数的表是:  ·一个空表或一个有1行的

2、表。  ·与在一个UNIQUE索引、或一个PRIMARYKEY的WHERE子句一起使用的表,这里所有的索引部分使用一个常数表达式并且索引部分被定义为NOTNULL。  所有下列的表用作常数表 mysql> SELECT * FROM t WHERE primary_key=1;mysql> SELECT * FROM t1,t2WHERE t1.primary_key=1 AND t2.primary_key=t1.id;  10、对联结表的最好联结组合是通过尝试所有可能性来找到:(。如果所有在ORDERBY和GROUPBY的列来自同一个表,那么当廉洁时,该表首先被选中。  11、如

3、果有一个ORDERBY子句和一个不同的GROUPBY子句,或如果ORDERBY或GROUPBY包含不是来自联结队列中的第一个表的其他表的列,创建一个临时表。  12、如果你使用SQL_SMALL_RESULT,MySQL将使用一个在内存中的表。  13、因为DISTINCT被变换到在所有的列上的一个GROUPBY,DISTINCT与ORDERBY结合也将在许多情况下需要一张临时表。  14、每个表的索引被查询并且使用跨越少于30%的行的索引。如果这样的索引没能找到,使用一个快速的表扫描。  15、在一些情况下,MySQL能从索引中读出行,甚至不咨询数据文件。如果索引使用的所有列是数字

4、的,那么只有索引树被用来解答查询。  16、在每个记录被输出前,那些不匹配HAVING子句的行被跳过。locatedintheTomb,DongShenJiabang,deferthenextdayfocusedontheassassination.Linping,Zhejiang,1ofwhichliquorwinemasters(WuzhensaidinformationisCarpenter),whogotAfewbayonets,duetomissedfatal,whennightcame  下面是一些很快的查询例子 mysql> SELECT COUNT(*) FROM t

5、bl_name;mysql> SELECT MIN(key_part1),MAX(key_part1) FROM tbl_name;mysql> SELECT MAX(key_part2) FROM tbl_name           WHERE key_part_1=constant;mysql> SELECT ... FROM tbl_name           ORDER BY key_part1,key_part2,... LIMIT 10;mysql> SELECT ... FROM tbl_name           ORDER BY key_part1 DESC,

6、key_part2 DESC,... LIMIT 10;  下列查询仅使用索引树就可解决(假设索引列是数字的): mysql> SELECT key_part1,key_part2 FROM tbl_name WHERE key_part1=val;mysql> SELECT COUNT(*) FROM tbl_name           WHERE key_part1=val1 AND key_part2=val2;mysql> SELECT key_part2 FROM tbl_name GROUP BY key_part1;  下列查询使用索引以排序顺序检索,不用一次另外的排

7、序: mysql> SELECT ... FROM tbl_name ORDER BY key_part1,key_part2,...mysql> SELECT ... FROM tbl_name ORDER BY key_part1 DESC,key_part2 DESC,...MySQL怎样优化LEFTJOIN在MySQL中,ALEFTJOINB实现如下:1、表B被设置为依赖于表A。2、表A被设置为依赖于所有用在LEFTJOIN条件的表(除B外)。3、

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。