优化聊天应用程序数据库

时间:2015-07-01 02:09:05

标签: sql-server indexing chat primary-key

我使用数据库处理一个简单的聊天应用程序。项目数据库显示在图像中。

消息表中的direction列只是确定user1是发件人还是user2是发件人。

Database for chat application

我使用此查询来获取消息:

SELECT  TextContent,Direction FROM Messages
WHERE   User1 = 1 AND User2 = 2 
ORDER BY Date

User1和User2的值仅用于说明。

我有两个问题:

  1. 我没有为Messages表选择主键。我应该只选择ID列作为主键还是为主键选择多个列?

  2. 我应该在(User1,User2, 列)或列(User1,User2,ID)列?我应该创建集群索引还是非集群索引?

1 个答案:

答案 0 :(得分:1)

是的,您应该在ID列上定义主键聚簇索引。

是的,您应该在(User1,User2,Date)上定义非聚簇复合索引。 ID已经包含在内了#34;如果您将ID定义为聚簇索引,则在非聚簇索引中。