Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.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 MySQL连接和子选择CONCAT_Php_Mysql_Database - Fatal编程技术网

Php MySQL连接和子选择CONCAT

Php MySQL连接和子选择CONCAT,php,mysql,database,Php,Mysql,Database,作为一名开发人员,我知道一个好的DB家伙是值得的。我经常发现自己用效率极低的方法来解决非关键问题,但在目前的情况下,我需要加快“让它工作”的速度。我甚至不会展示到目前为止我所做的事情,因为这太令人尴尬了,但让我们只说我在主PHP while循环中有子查询。对不起 为了向索引引擎(ApacheSolr)发出json请求,我需要将几个表连接在一起 我需要运行一个基本上允许我打印数组结构的查询,例如: Array( [FirstName] => Joe [LastName]

作为一名开发人员,我知道一个好的DB家伙是值得的。我经常发现自己用效率极低的方法来解决非关键问题,但在目前的情况下,我需要加快“让它工作”的速度。我甚至不会展示到目前为止我所做的事情,因为这太令人尴尬了,但让我们只说我在主PHP while循环中有子查询。对不起

为了向索引引擎(ApacheSolr)发出json请求,我需要将几个表连接在一起

我需要运行一个基本上允许我打印数组结构的查询,例如:

Array(
   [FirstName]   => Joe
   [LastName]    => Blogs
   [Upper]       => Array(
                       Vest
                    )
   [Lower]       => Array(
                       Shoe
                    )
   [Notes]       => Array(
                       Big Feet
                    )
   [Location]    => Array(
                       Big Ben
                    )
   [ApptFrom]    => Array(
                       2015-12-16 08:00:00
                    )
   [ApptTo]      => Array(
                       2015-12-16 08:30:00
                    )
如果我可以运行一个查询以获得以下输出,那么我可以运行一个分隔符来对需要为其构建数组的字段进行内爆。例如:

+----+------------+-----------+---------+---------+-----------------+-------------------+-----------------------------------------+-----------------------------------------+
| ID | FirstName  | LastName  | Upper   | Lower   | Notes           | Location          | ApptFrom                                | ApptTo                                  |
+----+------------+-----------+---------+---------+-----------------+-------------------+-----------------------------------------+-----------------------------------------+
| 2  | Jane       | Baker     | T-Shirt |         | Show off,Sweaty | London,New York   | 2015-12-17 10:00:00,2015-12-16 12:00:00 | 2015-12-17 11:00:00,2015-12-16 12:30:00 |
+----+------------+-----------+---------+---------+-----------------+-------------------+-----------------------------------------+-----------------------------------------+
我的脚本目前可以工作,但性能很差。通过80000个联系人进行翻录大约需要3个小时:-/


提前感谢。

当我开始索引Elasticsearch(使用Apache Lucene作为SOLR)5000万数据时,我遇到了完全类似的情况,现在只需要几个小时,我想你可以做以下几点:

  • 对查询进行解释,查看查询是否使用了正确的索引
  • 尝试使用更多的sub-select而不是join,因为mysql在选择百万数据的索引时存在问题(您可以使用force index)
  • 启动多线程进行索引

  • 当我开始索引Elasticsearch(使用Apache Lucene作为SOLR)5000万数据时,我也遇到了类似的情况,现在只需要几个小时,我想你可以做以下几点:

  • 对查询进行解释,查看查询是否使用了正确的索引
  • 尝试使用更多的sub-select而不是join,因为mysql在选择百万数据的索引时存在问题(您可以使用force index)
  • 启动多线程进行索引

  • 你应该给我们看看你的剧本。80000对于SQL来说应该不是问题。此外,对其进行规范化将提高其性能。joins、group by和use group_concat()在单个字段中生成逗号分隔的值。按照我的想法,MySQL中的group_concat是解决问题的答案,尤其是在提供表示层的情况下。无论如何,如果你喜欢,考虑下面这个简单的两步行动:1。如果您还没有这样做,请提供适当的CREATE和INSERT语句(和/或SQLFIDLE),以便我们可以更轻松地复制问题。2.如果您还没有这样做,请提供与步骤1中提供的信息相对应的所需结果集。您可能应该向我们展示您的脚本。80000对于SQL来说应该不是问题。此外,对其进行规范化将提高其性能。joins、group by和use group_concat()在单个字段中生成逗号分隔的值。按照我的想法,MySQL中的group_concat是解决问题的答案,尤其是在提供表示层的情况下。无论如何,如果你喜欢,考虑下面这个简单的两步行动:1。如果您还没有这样做,请提供适当的CREATE和INSERT语句(和/或SQLFIDLE),以便我们可以更轻松地复制问题。2.如果尚未这样做,请提供与步骤1中提供的信息相对应的所需结果集。
    +----+------------+-----------+---------+---------+-----------------+-------------------+-----------------------------------------+-----------------------------------------+
    | ID | FirstName  | LastName  | Upper   | Lower   | Notes           | Location          | ApptFrom                                | ApptTo                                  |
    +----+------------+-----------+---------+---------+-----------------+-------------------+-----------------------------------------+-----------------------------------------+
    | 2  | Jane       | Baker     | T-Shirt |         | Show off,Sweaty | London,New York   | 2015-12-17 10:00:00,2015-12-16 12:00:00 | 2015-12-17 11:00:00,2015-12-16 12:30:00 |
    +----+------------+-----------+---------+---------+-----------------+-------------------+-----------------------------------------+-----------------------------------------+