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