MySQL多表查询SQL优化

Hejs 发布于 2017/09/05 22:38
阅读 264
收藏 1

现在有两张表 blog, comment. 表结构如下。

CREATE TABLE `blog` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB CHARSET=utf8;

CREATE TABLE `comment` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `blogId` int(11) NOT NULL,
  `username` varchar(50) NOT NULL,
  `publish_time` varchar(10) NOT NULL,
  `content` longtext NOT NULL,
  PRIMARY KEY (`id`),
  KEY `blogId` (`blogId`)
) ENGINE=InnoDB CHARSET=utf8;

数据如下

insert into blog values(null, "标题1"), (null, "标题2");
insert into comment values(null, 1, 'user1', '2017-09-05', 'content1'),(null, 2, 'user2', '2017-09-05', 'content2');

现在想输出这样的结果

+---------+-----------+--------------+-----------+
| title   | username  | publish_time | content        |
+---------+-----------+--------------+-----------+

| 标题1   | user1     | 2017-09-05   | content1  |
| 标题2   | user2     | 2017-09-05   | content2  |
+---------+-----------+--------------+-----------+

我写的SQL语句是这样的,最容易想的:

select blog.title,comm.username,comm.publish_time,comm.content from blog
inner join
comment comm
on blog.id = comm.blogId
order by comm.id desc limit 3;

网上看到许多的优化方法。试过但是还是云里雾里状态。

所以请求各位大侠的优化方案。

 

加载中
0
我_承宇
我_承宇

少用多表联查,基于缓存做简单查询,在内存中组装数据。

0
沙枣
沙枣

不要着急优化,先写出正确的代码。针对特定语言和平台的优化,是对有性能瓶颈的大型查询进行的事情。

0
溱
两张表join 不算慢吧
0
Ryan-瑞恩
Ryan-瑞恩

就这样,就挺好的。。。。。

返回顶部
顶部