CREATE TABLE topid{topicId int not null primary key auto_increment,title text,author varchar(30),content blob,isDeleted int...... //好像在author上定义了一个索引}CREATE TABLE reply{topicId int foreign key,replyId int primary key auto_increment,replyAuthor varchar(30),replyTime datetime,context blob....... //定义了一个索引和key}一个为主题表,一个为回复表。1.问从性能上考虑,这样做有什么不足。2.查询回复时间不超过一个特定的时间段,回复的作者名字以MIKE开头的主题的title,以如下的查询:
点击(此处)折叠或打开
select *
from topic
where replyid in
(
select replyid from reply
where replyAuthor like 'mike%' and (currentTime()-replyTime))从性能上考虑上述的查询语句有什么不足?如何进行优化?
一、
1.问从性能上考虑,这样做有什么不足。
不足之处在于当主题数和回复数快速增长时..表的记录会无限增多最终导致查询会越来越慢。可扩展性很差.2.查询回复时间不超过一个特定的时间段,回复的作者名字以MIKE开头的主题的title,以如下的查询:select * from topic where replyid in (select replyid from reply where replyAuthor like 'mike%' and