Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.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_Performance - Fatal编程技术网

在存储大量信息时,mysql数据库设置的最佳选择是哪种路由?

在存储大量信息时,mysql数据库设置的最佳选择是哪种路由?,mysql,performance,Mysql,Performance,我使用的是PHP和MySQL,我只是想知道哪种路径对性能更有利,数据库将不断增长,但增长速度相对较慢,但对于每个员工,我必须存储相当数量的信息,例如: id name address phone email coworkers pay_rate notes tasks completed_tasks 所以我想知道哪一个对我的数据库设置更好 我应该为每个员工创建一个新表,还是只创建每个表,并用id号相应地链接信息。这些应该是表 EMPLOYEES id name address

我使用的是PHP和MySQL,我只是想知道哪种路径对性能更有利,数据库将不断增长,但增长速度相对较慢,但对于每个员工,我必须存储相当数量的信息,例如:

id
name
address
phone
email
coworkers
pay_rate
notes
tasks
completed_tasks
所以我想知道哪一个对我的数据库设置更好


我应该为每个员工创建一个新表,还是只创建每个表,并用id号相应地链接信息。

这些应该是表

EMPLOYEES
  id
  name
  address
  phone
  email
  pay_rate
COWORKERS (this is a link table, tells relationship among employees)
  EMPLOYEE.ID (FK)
  EMPLOYEE.ID (FK)
NOTES
  notes_id
  notes
  EMPLOYEE.id (FK)
TASKS
  task_id
  task-details
  completed (int or bool)
  EMPLOYEE.id (FK)
不要为每个员工创建新表。不推荐。。搜索、筛选将很困难。您应该组织数据,记住它们在映射方面的相互关系,例如,员工集以一对多的方式映射到注释集


此外,您不应该过多地考虑数据库开始溢出时会发生什么情况。如果那一刻到来,你一定有几十亿行。然后,您可能会想到一种排列数据的技术

我肯定会做后者。您不需要在数据库中大量增加表,只需为每个新员工向employee表中添加一条新记录,并在其他表中跟踪一对多信息,这些表使用employeeId字段(您希望生成外键)进行索引

不过,您需要确保employees表中只包含员工信息,而不包含“同事”之类的内容。使用多个表跟踪具有不同含义/目的/关系的数据集。关系数据库ftw