有没有更快的方式来进行这个mysql查询?

时间:2013-07-01 04:21:33

标签: php mysql

下面的查询将每个模型与其相关的照片拍摄相匹配,并让我在照片拍摄中将第一张图像作为帖子的默认图像回显10张贴。它工作正常,似乎真的很慢。是否有更快的方法来达到预期的效果?

"SELECT * "
. "FROM models a "
. "INNER JOIN models_images b ON a.model_id = b.model_id "
. "WHERE 1 AND `images_ok` = '1'"       
. "GROUP BY a.model_id ORDER BY a.id DESC "     
. "LIMIT 10"

谢谢

2 个答案:

答案 0 :(得分:4)

您可以在两个表中的model_idimages_ok字段中添加索引。

像这样:

--           table name         new index name     field name
ALTER TABLE `models` ADD INDEX `models_model_id` (`model_id`);

关于数据库索引的维基百科:

  

数据库索引是一种提高速度的数据结构   数据检索操作在数据库表上的代价较慢   写和使用更多的存储空间。可以使用创建索引   数据库表的一列或多列,为两者提供基础   快速随机查找和有序记录的有效访问。

有助于理解索引的好视频:

Understanding Indexes by solubletech at youtube

答案 1 :(得分:0)

你可以使用mysql的功能"索引"对于这个解决方案有关索引的详细说明,请参阅mysql手册

请参阅Mysql developer tutorial

请参阅W3chools