-1

下面的查询将每个模型与其相关的照片相匹配,并让我回显 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"

谢谢

4

2 回答 2

4

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

像这样:

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

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

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

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

通过 youtube 上的 solvabletech 了解索引

于 2013-07-01T04:26:08.030 回答
0

您可以为此解决方案使用 mysql 的功能“索引”。有关索引的详细说明,请参阅 mysql 手册

Mysql 开发者教程

或者

W3 学校

于 2013-07-01T05:11:24.470 回答