DBA专家门诊一期:索引与sql优化
ReDBA专家门诊一期:索引与sql优化
有个问题:分类表TQueCategory,问题表TQuestion(T-SQL)
CREATE TABLE TQueCategory
(
ID INT IDENTITY(1,1) PRIMARY KEY, --问题分类ID
NAME VARCHAR(20) --问题分类名称
)
CREATE TABLE TQuestion
(
ID INT IDENTITY(1,1) PRIMARY KEY, --问题ID
CateID INT NOT NULL, --问题分类ID
TITLE VARCHAR(50), --问题标题
CONTENT VARCHAR(500) --问题内容
)
当前要统计某个分类下的问题数,有两种方式:
1.每次统计,在TQuestion通过CateID进行分组统计
SELECT CateID,COUNT(1) AS QueNum FROM TQuestion GROUP BY CateID WHERE 1=1
2.在TQueCategory表增加字段QueNum,用于标识该分类下的问题数量
ALTER TABLE TQueCategory ADD QueNum INT
SELECT CateID,QueNum FROM TQueCategory
问:在哪种业务应用场景下采用上面哪种方式性能比较好,为什么?
-------------------------
回13楼玄惭的帖子
“最后建议不要在数据库中使用外键,让应用程序来保证。 ”
这个不敢苟同,用不用外键,这个还是得看具体的业务环境吧,不能一刀切。
这篇博文的讨论不错。
《数据库设计中一个矛盾:数据库外键,用还是不用?你怎么看.?》
www点cnblogs点com/chenkai/archive/2009/11/11/1601193.html
赞0
踩0