group by 临时表优化

mumubangditu 2015-01-31 05:08:04
有两个表列相同的数据表table1和table2,table1是保存自动程序采集RSS文件,45万条记录;table2是保存客户在线撰写文章的,1万条记录。
两个表都是myisam,具有相同的索引。id是PRIMARY,date普通单独索引date,image普通单独索引image,my_index是FULLTEXT索引。
title没有加索引,也不想加索引。所以下列的query group by title相当慢。但是有一个思路,由于重名的文章很少,最终只需要最新的15条记录。可不可以先查询最新的20条记录,保存进一个临时表,然后在这个只有20条记录的临时表里再进行group by title。
但是不知道怎样建立这个临时表以及相关的查询,用完后再删除这个临时表。求完整的代码。谢谢。



		include @dirname(__FILE__) . '/conn.php';
mysql_select_db("news",$db);
mysql_query("SET NAMES utf8");
$result = @mysql_query("SELECT table_name,id,title,content,my_index,date,image FROM ((SELECT 'a' as table_name,id,title,content,my_index,date,image FROM table1 where image!='' and MATCH (my_index) AGAINST ('".$bool."' IN BOOLEAN MODE) Order By date DESC LIMIT 10) UNION ALL (SELECT 'b' as table_name,id,title,content,my_index,date,image FROM table2 where image!='' and MATCH (my_index) AGAINST ('".$bool."' IN BOOLEAN MODE) Order By date DESC LIMIT 10)) t group by title Order By date DESC LIMIT 15");
if(mysql_num_rows($result)>0){
while($data = mysql_fetch_array($result)){
//
}
}
mysql_close($db);
...全文
180 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

56,866

社区成员

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

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