电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 2129 人浏览分享

MySQL使用临时表加速查询的方法

[复制链接]
2129 0

本文实例讲述了MySQL使用临时表加速查询的方法。分享给大家供大家参考。具体分析如下:

使用MySQL临时表,有时是可以加速查询的,下面就为您详细介绍使用MySQL临时表加速查询的方法。

把表的一个子集进行排序并创建MySQL临时表,有时能加速查询。它有助于避免多重排序操作,而且在其他方面还能简化优化器的工作。例如:
复制代码 代码如下:

  1. SELECT cust.name,rcVBles.balance,……other columns  
  2. SELECT cust.name,rcVBles.balance,……other columns  
  3. FROM cust,rcvbles  
  4. WHERE cust.customer_id = rcvlbes.customer_id  
  5. AND rcvblls.balance>0  
  6. AND cust.postcode>"98000"  
  7. ORDER BY cust.name
复制代码



如果这个查询要被执行多次而不止一次,可以把所有未付款的客户找出来放在一个临时文件中,并按客户的名字进行排序:
复制代码 代码如下:

  1. SELECT cust.name,rcvbles.balance,……other columns  
  2. SELECT cust.name,rcvbles.balance,……other columns  
  3. FROM cust,rcvbles  
  4. WHERE cust.customer_id = rcvlbes.customer_id  
  5. AND rcvblls.balance>0  
  6. ORDER BY cust.name  
  7. INTO TEMP cust_with_balance
复制代码


然后以下面的方式在临时表中查询:
复制代码 代码如下:

  1. SELECT * FROM cust_with_balance
  2. WHERE postcode>"98000"
复制代码


临时表中的行要比主表中的行少,而且物理顺序就是所要求的顺序,减少了磁盘I/O,所以查询工作量可以得到大幅减少。
注意:临时表创建后不会反映主表的修改。在主表中数据频繁修改的情况下,注意不要丢失数据。

希望本文所述对大家的MySQL数据库程序设计有所帮助。



您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.