sql - 在 VARCHAR 数据库字段上建立索引可以提高插入速度吗?

标签 sql database postgresql indexing unique

我的数据库中有两个表:页面和链接。在每一个中,我都定义了 URL 字段是唯一的,因为我不想重复 URL。

作为一个 UNIQUE 字段,它自动有一个索引?为这些字段创建索引可以加快插入速度吗? VARCHAR 字段最合适的索引是什么?

有很多行会减慢插入速度,因为这个 UNIQUE 字段?目前,我有 1,200,000 行。

最佳答案

是的,添加一个 UNIQUE 约束 will create an index :

Adding a unique constraint will automatically create a unique btree index on the column or group of columns used in the constraint.

虽然这不会加速您的 INSERT,但实际上会减慢它们的速度:

  1. 必须检查每个插入(使用索引)以确保保持唯一性。
  2. 插入也会更新索引,这不是免费的。

关于sql - 在 VARCHAR 数据库字段上建立索引可以提高插入速度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6701484/

相关文章:

sql - 夏令时导致数据库中的日期不正确

sql - 如何将 Laravel 迁移转换为原始 SQL 脚本?

SQL COUNT 个,共 COUNT 个

php - mysql查询按上次发帖排序

mysql - Magento 2 在模块中创建多数据库表

database - 在 Postgres 中将数据从一个表移动到另一个表的最快方法

sql - 我如何在 postgresql 中转换为 DECIMAL?

sql - 将 Rails 迁移转换为原始 SQL

mysql - 根据多个 id 对多个表中的列求和

python - 如何在 SQLAlchemy 中使用 FROM 对象注释函数元素