Ale*_*der 7 sql postgresql foreign-keys unique-index unique-constraint
如果列包含唯一约束并且我想按此列快速搜索,我应该创建唯一索引吗?
例如,我有一个users
列login
应该是唯一的表。我需要按login
列快速搜索用户。
这是最好的方法:
WHERE login = 'something'
?)第二种情况login
对于未锁定的用户是唯一的(列locked = false
)。Postgres 不支持部分条件。我应该创建唯一的条件索引和部分索引还是仅部分索引就足够了?
还有一个问题:我应该为带有外键的列创建新索引吗?例如:users.employee_id
涉及到employees.id
,我应该employee
为优化查询在列上创建索引SELECT * FROM users WHERE employee_id = ....
吗?优化引擎何时使用内部索引,何时不使用?
我有一个表 'users' 列登录应该是唯一的
如果是这种情况,您需要一个唯一约束。唯一约束由唯一索引强制执行(在幕后)。
从概念上讲:
它是否用于 WHERE login = 'something' 的选择查询中?
是的。
第二种情况是未锁定用户的唯一登录(列锁定 = false)。
如果是这种情况,unique
约束将不起作用。也许插入触发器可以在这里有所帮助。
我应该为带有外键的列创建新索引吗?
不,不需要(至少在当前版本中10
,也许在更高版本中),s。文档:
当为表定义唯一约束或主键时,PostgreSQL 会自动创建唯一索引。[...] 无需在唯一列上手动创建索引;这样做只会复制自动创建的索引。
归档时间: |
|
查看次数: |
3872 次 |
最近记录: |