Database 关于数据库索引的帮助

Database 关于数据库索引的帮助,database,indexing,Database,Indexing,在VARCHAR(500)字段上创建索引是一个好主意吗?我将在其中进行大量搜索,但我不确定在这样一个“大”字段上创建索引是否是一个好主意 你觉得怎么样?这通常不是一个好主意,因为索引文件会很大,搜索速度相对较慢。最好使用字段的前缀,例如字段的前32或64个字符作为索引。另一种可能性是,如果使用全文索引是有意义的,一般来说,在用于搜索的字段上创建索引是个好主意。但是,根据使用情况,有更好的选择: 全文搜索(from):在全文搜索中,搜索引擎在尝试匹配用户提供的搜索词时检查每个存储文档中的所有词

在VARCHAR(500)字段上创建索引是一个好主意吗?我将在其中进行大量搜索,但我不确定在这样一个“大”字段上创建索引是否是一个好主意


你觉得怎么样?

这通常不是一个好主意,因为索引文件会很大,搜索速度相对较慢。最好使用字段的前缀,例如字段的前32或64个字符作为索引。另一种可能性是,如果使用全文索引是有意义的,一般来说,在用于搜索的字段上创建索引是个好主意。但是,根据使用情况,有更好的选择:

  • 全文搜索(from):在全文搜索中,搜索引擎在尝试匹配用户提供的搜索词时检查每个存储文档中的所有词
  • 部分索引:(同样是from):在数据库中,部分索引(也称为筛选索引)是一个应用了某些条件的索引,以便它包括表中的行子集

也许你应该考虑提供更多关于索引使用的信息。

你应该把索引放在经常使用的查询会更快的地方,但是,有许多问题需要考虑< /P>

  • 索引的大小非常有限,例如mssql有900字节的限制
  • 许多索引在编写时可能会产生开销(尽管上次我在一个有9个索引的表上插入一百万个条目时,这是最小的)
  • 许多索引占用了数据库中宝贵的空间
  • 插入数据时,许多索引可能会造成死锁
还可以查看您使用的数据库的文档。大多数数据库都支持文本列,并在其中进行高效搜索