我们有一个包含三个字段的组合主键(在MySQL 5.1中)。 在这个表上每秒钟有200个插入和200个select,并且表的大小约为100万行,并且正在增加。 我的问题是:“复合主键”是否会降低此表上插入和select的性能? 我应该使用简单的自动增加INT ID字段而不是复合主键吗? (我想这个答案和MySQL在多列上处理索引的方式非常相关)
我可以在SQLite网站上find这个语法“图表”,但没有例子和我的代码崩溃。 我有其他表在单个列上具有唯一约束,但我想要添加一个约束到两列的表。 这就是我所引起的SQLiteException消息“语法错误”。 CREATE TABLE name (column defs) UNIQUE (col_name1, col_name2) ON CONFLICT REPLACE 我正在做这个基于以下几点: 表约束 要清楚,我提供的链接上的文档说, CONTSTRAINT name应该在我的约束定义之前。 可能导致解决scheme的东西是,无论跟在括号内的列定义是debugging器抱怨什么。 如果我放 …last_column_name last_col_datatype) CONSTRAINT … 错误接近“CONSTRAINT”:语法错误 如果我放 …last_column_name last_col_datatype) UNIQUE … 错误接近“UNIQUE”:语法错误
不久之后,我想在我的表上创build复合键,并保留主键,以提高sql server的search性能。 每当我search一个没有主键的实体(即一串GUID)时,性能问题就出现在200k数据表上。 假设我有三个class public class Device{ public int ID { get; set; } public string UDID { get; set; } public string ApplicationKey { get; set; } public string PlatformKey { get; set; } public ICollection<NotificationMessageDevice> DeviceMessages { get; set; } } public class NotificationMessageDevice { [Column(Order = 0), Key, ForeignKey("NotificationMessage")] public int NotificationMessage_ID […]
我在MVC 3应用程序中使用entity framework4.1。 我有一个实体,我有主键由两列(复合键)组成。 这被另一个实体用作外键。 如何build立关系? 在正常的scnerios我们使用: public class Category { public string CategoryId { get; set; } public string Name { get; set; } public virtual ICollection<Product> Products { get; set; } } public class Product { public int ProductId { get; set; } public string Name { get; set; } public string CategoryId […]
这是我正在与一个激烈的设置过分简化。 table_1和table_2都有自动递增代理主键作为ID。 info是一个包含关于table_1和table_2信息的表。 table_1 (id, field) table_2 (id, field, field) info ( ???, field) 我试图决定是否应该使信息的主键是来自table_1和table_2的ID的组合。 如果我要这样做,哪个最有意义? (在这个例子中,我将ID 11209与ID 437结合) INT(9) 11209437 (我能想象为什么这是不好的) VARCHAR (10) 11209-437 DECIMAL (10,4) 11209.437 或者是其他东西? 将这个作为MYSQL MYISAM DB的主键就可以吗?