相关疑难解决方法(0)

聚集索引应该放在什么列?

最近,我一直在阅读所有类型的索引,主要的建议是将聚簇索引放在表的主键上,但如果主键实际上没有在查询中使用(通过选择或连接)并且仅仅用于纯粹的关系目的,因此在这种情况下不会被查询.例如,说我有一个car_parts表,它包含3列,car_part_id,car_part_no,和car_part_title. car_part_id是唯一的主键标识列.在这种情况下car_part_no也是独一无二的,也是最有可能的car_part_title. car_part_no是最受查询的,所以将聚簇索引放在该列而不是car_part_id?问题的基础是什么列实际上应该具有聚集索引,因为您只允许其中一个?

sql sql-server indexing database-design

10
推荐指数
2
解决办法
5360
查看次数

主键是否应始终指定为聚簇索引

我有一个存储员工详细信息的SQLServer表,列ID是GUID类型,而EmployeeNumber列是INT类型.大多数时候,我会在加入和选择条件时处理EmployeeNumber.

我的问题是,在ClusteredIndex为EmployeeNumber时,将PrimaryKey分配给ID列是否合理?

sql sql-server clustered-index

10
推荐指数
2
解决办法
7943
查看次数

使用Datastax C#Cassandra Driver在timeuuid上"大于"where-condition

如何使用Datastax C#驱动程序对timeuuid数据类型的CQL查询中的"大于"或"小于"where条件?

我在Cassandra有一个表,用于存储按时间戳排序的cookie历史记录作为timeuuid:

CREATE TABLE cookie_history (
    cookie_id text,
    create_date timeuuid,
    item_id text,
    PRIMARY KEY ((cookie_id), create_date)
);
Run Code Online (Sandbox Code Playgroud)

使用C#类映射表以使用Datastax C#Cassandra驱动程序进行查询:

[Table("cookie_history")]
public class CookieHistoryDataEntry
{
    [PartitionKey(1)]
    [Column("cookie_id")]
    public string CookieID;

    [ClusteringKey(1)]
    [Column("create_date")]
    public Guid CreateDate;

    [Column("item_id")]
    public string ItemID;
}
Run Code Online (Sandbox Code Playgroud)

对于给定的cookie,我想要在给定时间戳之后的所有项目.

        var myTimeUuid = new Guid("5812e74d-ba49-11e3-8d27-27303e6a4831");
        var table = session.GetTable<CookieHistoryDataEntry>();
        var query = table.Where(x => x.CookieID == myCookieId
                                  && x.CreateDate > myTimeUuid);
Run Code Online (Sandbox Code Playgroud)

但是这个(x.CreateDate> myTimeUuid)给了我一个编译时错误:

Operator '>' cannot be applied to operands of type 'System.Guid' and 'System.Guid'
Run Code Online (Sandbox Code Playgroud)

c# cassandra datastax

5
推荐指数
1
解决办法
1563
查看次数

MySQL:使用DATETIME作为主键

我的数据库将存储大量数据点,因此我使用无符号BIGINT作为主键.

使用DATETIME对象作为主键是否有意义?

谢谢,

mysql database-design

1
推荐指数
2
解决办法
1万
查看次数