Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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
Mysql 我应该在数据库中设置哪些索引_Mysql_Database_Database Indexes - Fatal编程技术网

Mysql 我应该在数据库中设置哪些索引

Mysql 我应该在数据库中设置哪些索引,mysql,database,database-indexes,Mysql,Database,Database Indexes,我正在写一个申请,输入一些测试结果。 测试人员每周测试大约40个版本,每个版本有50个测试结果。这意味着每周40x50=每周2000个结果。每月大约有10000个测试结果。正如您所看到的,我的数据库表testResults将快速增长 所以现在我想定义一些指数。测试结果具有testcase和它所属的release的外键 这就是为什么我想有两个索引。一个在testcase_id上,另一个在release_name上(release表中的id)。原因是,如果有人想要获得特定测试用例或特定版本的测试结果

我正在写一个申请,输入一些测试结果。 测试人员每周测试大约40个版本,每个版本有50个测试结果。这意味着每周40x50=每周2000个结果。每月大约有10000个测试结果。正如您所看到的,我的数据库表testResults将快速增长

所以现在我想定义一些指数。测试结果具有testcase和它所属的release的外键

这就是为什么我想有两个索引。一个在testcase_id上,另一个在release_name上(release表中的id)。原因是,如果有人想要获得特定测试用例或特定版本的测试结果,那么搜索整个结果表(仅按结果id排序)将花费太长时间,我想仅仅一年后就会有超过100000个条目,我的应用程序将极为缓慢

但插入测试结果是否也会减慢速度?每天很多测试结果都会被添加到我的结果表中。如果我的2个索引总是需要不断更新,那么现在的速度会很慢吗

我刚才在数据库MySQL中看到的内容。
MySQL中的外键会自动在表上创建索引。为什么呢???

指数听起来是个不错的计划。我真的不会担心你的数据大小和插入,因为这真的不是很多数据。即使过了几年,您仍然处于excel大小的数据中,mysql通过适当的索引应该可以很快处理这些数据。但是您可以想象为什么mysql会为每个外键创建一个索引??我的意思是索引是为了加快性能,但如果我不经常需要外键,那就是浪费内存。老实说,100000并不是很多数据。MySQL应该会处理得很好。如果确实出现问题,您可以随时归档旧的行。在Mysql中,外键索引是一种很好的做法。它甚至在文章中暗示了这一点。在您计划筛选的任何列上建立索引也是一种很好的做法。显然,当您
插入
更新
删除
时,索引会有开销,但如果您计划经常执行
选择
,则更快的select语句将超过该开销。最终,虽然你的音量很小,所以我不会为这一个而烦恼。按照您的计划将索引放在适当的位置,它应该可以很好地执行。让我们看看查询和
SHOW CREATE TABLE
。根据这些,我们可以建议哪些索引是有用的。这些索引听起来是个不错的计划。我真的不会担心你的数据大小和插入,因为这真的不是很多数据。即使过了几年,您仍然处于excel大小的数据中,mysql通过适当的索引应该可以很快处理这些数据。但是您可以想象为什么mysql会为每个外键创建一个索引??我的意思是索引是为了加快性能,但如果我不经常需要外键,那就是浪费内存。老实说,100000并不是很多数据。MySQL应该会处理得很好。如果确实出现问题,您可以随时归档旧的行。在Mysql中,外键索引是一种很好的做法。它甚至在文章中暗示了这一点。在您计划筛选的任何列上建立索引也是一种很好的做法。显然,当您
插入
更新
删除
时,索引会有开销,但如果您计划经常执行
选择
,则更快的select语句将超过该开销。最终,虽然你的音量很小,所以我不会为这一个而烦恼。按照您的计划将索引放在适当的位置,它应该可以很好地执行。让我们看看查询和
SHOW CREATE TABLE
。从这些,我们可以建议哪些索引是有用的。