Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 我应该为我在find上使用的每个字段添加数据库索引吗?_Ruby On Rails_Database - Fatal编程技术网

Ruby on rails 我应该为我在find上使用的每个字段添加数据库索引吗?

Ruby on rails 我应该为我在find上使用的每个字段添加数据库索引吗?,ruby-on-rails,database,Ruby On Rails,Database,我在几个不同的模型中有很多字段,我使用Model.find_by_xxx在这些字段上执行搜索 我是否应该为我在find on上使用的每个字段添加数据库索引?是的,可能是。索引的代价是insert/update/delete语句速度较慢,因为它们现在也需要更改索引。表上的索引越多,执行插入/更新/删除操作所需的时间就越长。因此,如果你只是在阅读数据,那么索引显然是一个胜利 拥有许多索引的另一个缺点是磁盘空间。您基本上是为索引制作该列的另一个副本。但通常这是次要的考虑。不一定。。。视情况而定。您希望

我在几个不同的模型中有很多字段,我使用Model.find_by_xxx在这些字段上执行搜索


我是否应该为我在find on上使用的每个字段添加数据库索引?

是的,可能是。索引的代价是insert/update/delete语句速度较慢,因为它们现在也需要更改索引。表上的索引越多,执行插入/更新/删除操作所需的时间就越长。因此,如果你只是在阅读数据,那么索引显然是一个胜利


拥有许多索引的另一个缺点是磁盘空间。您基本上是为索引制作该列的另一个副本。但通常这是次要的考虑。

不一定。。。视情况而定。您希望每个表中有多少行?多久更新一次?您在每个表中搜索多少字段?数据库是否可能主要用于报告,或主要作为操作数据输入系统的一部分