Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.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
Php 解析URL与存储URL部分_Php_Mysql_Performance - Fatal编程技术网

Php 解析URL与存储URL部分

Php 解析URL与存储URL部分,php,mysql,performance,Php,Mysql,Performance,我正在使用PHP和MySQL,我正在构建一个需要存储URL的数据库。我将不得不对url的各个部分做大量的工作。它最终将成为数百万张唱片 我的问题是,什么更有意义: 将url的部分存储在多个字段中,无需 解析 将整个url存储在一个字段中,并每次解析它 谢谢你提供的任何建议 设计新数据库模式时的经验法则是,在证明有必要之前,不要进行非规范化 因此,从最规范化和最简单的模式开始。只有在您遇到任何性能问题后,才能配置您的应用程序并解决特定的瓶颈。取决于您的查询模式。如果您要从hostname=..

我正在使用PHP和MySQL,我正在构建一个需要存储URL的数据库。我将不得不对url的各个部分做大量的工作。它最终将成为数百万张唱片

我的问题是,什么更有意义:

  • 将url的部分存储在多个字段中,无需 解析
  • 将整个url存储在一个字段中,并每次解析它

谢谢你提供的任何建议

设计新数据库模式时的经验法则是,在证明有必要之前,不要进行非规范化


因此,从最规范化和最简单的模式开始。只有在您遇到任何性能问题后,才能配置您的应用程序并解决特定的瓶颈。

取决于您的查询模式。如果您要从hostname=..的URL执行
SELECT*之类的操作,那么您显然希望将它们拆分为各自的字段。如果您永远不会使用查询来分割数据,那么只存储完整的URL本身就可以了。但您从来都不想解析db端(如果您发现自己正在解析db端,最好只存储解析后的数据)

数据库结构实际上取决于您计划运行的查询


如果您确实需要按URL部分(如域名)进行搜索,则需要将它们保留在大URL表之外的其他位置,以便对较小的表执行这些查询。

对不起,我的英语太差了。您需要在每个url变量中存储什么类型的数据?一串整数?如果你打算对URL的特定部分进行大量搜索,我建议将它们分开存储。取决于您正在搜索的内容以及您将对URL所做的“工作”。你也可以将完整的URL存储在数据库中,以防你需要抓取它,而不是将其全部放回一起。这几乎就是你查询不同部分时返回的信息。蒂姆,这是你的答案。我会把它分开。为了简单性和单独索引每个部分的能力,您正在交换空间。