2017-06-21 21:17
2017-06-20 09:00
2017-06-19 18:34

引用来自“eechen”的评论

查询指定标签下的文章,并按post_id降序排序(自增编号post_id反映了post的创建时间):
$sql = '
SELECT post.id, post.title
FROM post_tag, post
WHERE post_tag.post_id = post.id
AND post_tag.tag_id = 1
ORDER BY post_tag.post_id DESC
LIMIT 20 OFFSET 0
';
$rows = $db->query($sql)->fetchAll();
好奇ORM是怎么简化SQL多表连接的,是否能够结合上面这个很常见的多表逻辑来说明.

另外,数据量大时,多表连接的开销很大,ORM是否应该提供一种外部(如Redis)的缓存机制来优化查询.
比如:标签1下的文章的第1页
key: tag_1_posts
value: list(post_1, post_2)
Redis可以用lrange操作list实现分页.
dbContext.JoinQuery<post_tag,post>((post_tag,post) => new object[]
{
JoinType.InnerJoin, post_tag.post_id = post.id && post_tag.tag_id = 1
})
.Select((post_tag,post) => new { post_tag,post })
.OrderbyDesc(a=>a.post_tag.post_id )
.TakePage(1,20)

引用来自“eechen”的评论

查询指定标签下的文章,并按post_id降序排序(自增编号post_id反映了post的创建时间):
$sql = '
SELECT post.id, post.title
FROM post_tag, post
WHERE post_tag.post_id = post.id
AND post_tag.tag_id = 1
ORDER BY post_tag.post_id DESC
LIMIT 20 OFFSET 0
';
$rows = $db->query($sql)->fetchAll();
好奇ORM是怎么简化SQL多表连接的,是否能够结合上面这个很常见的多表逻辑来说明.

另外,数据量大时,多表连接的开销很大,ORM是否应该提供一种外部(如Redis)的缓存机制来优化查询.
比如:标签1下的文章的第1页
key: tag_1_posts
value: list(post_1, post_2)
Redis可以用lrange操作list实现分页.
这个 @eechen 就是个笑话,天天要喊着吊打,结果现在挂在树上惨遭吊打,屁都不敢放一个,又一个神棍被拉下神坛 --via FalconChen . 有链接有真相: https://www.oschina.net/question/253880_2236467
2017-06-19 17:57
查询指定标签下的文章,并按post_id降序排序(自增编号post_id反映了post的创建时间):
$sql = '
SELECT post.id, post.title
FROM post_tag, post
WHERE post_tag.post_id = post.id
AND post_tag.tag_id = 1
ORDER BY post_tag.post_id DESC
LIMIT 20 OFFSET 0
';
$rows = $db->query($sql)->fetchAll();
好奇ORM是怎么简化SQL多表连接的,是否能够结合上面这个很常见的多表逻辑来说明.

另外,数据量大时,多表连接的开销很大,ORM是否应该提供一种外部(如Redis)的缓存机制来优化查询.
比如:标签1下的文章的第1页
key: tag_1_posts
value: list(post_1, post_2)
Redis可以用lrange操作list实现分页.
回复 @
{{emojiItem.symbol}}
返回顶部
顶部