Php 使用GROUPBY和count优化结果中的MySQL查询顺序
我有以下疑问:Php 使用GROUPBY和count优化结果中的MySQL查询顺序,php,mysql,optimization,group-by,Php,Mysql,Optimization,Group By,我有以下疑问: SELECT vBrowser,iconBrowser, count(iconBrowser) as 'N' FROM user_ip_tmp WHERE code='9m9g9tsv2y' GROUP BY iconBrowser ORDER BY N DESC LIMIT 40 这是正确的。但是关于精神错乱原因的质疑花了很长时间 Showing rows 0 - 17 ( 18 total, Query took 4.4189 sec) 应该为语句中的内容编制索引
SELECT vBrowser,iconBrowser, count(iconBrowser) as 'N'
FROM user_ip_tmp WHERE code='9m9g9tsv2y'
GROUP BY iconBrowser
ORDER BY N DESC
LIMIT 40
这是正确的。但是关于精神错乱原因的质疑花了很长时间
Showing rows 0 - 17 ( 18 total, Query took 4.4189 sec)
应该为
语句中的内容编制索引
在选择之前,尝试使用EXPLAIN
语句查看用于检索请求结果的内容和方式
如果列code
不是唯一的值,我建议将它放在另一个表中,在那里它是唯一的。然后使用JOIN
构建查询,通过外键
请接受一些答案(大复选标记,而不仅仅是向上箭头),以获得更好的答案。你有8个问题,零接受。我道歉,我是编程新手,我没有足够的经验,我希望能帮助我解决问题code
id选择类型表类型可能的\u键键键\u len ref行额外1个简单用户\u ip\u tmp ref太767 const 52899使用where;使用临时设备;使用filesorcode
@10neencom这意味着,您的查询没有使用索引。我现在如何解决这个问题呢?请更改表user\ip\tmp
添加索引(code
),我花费了很多时间并导致停止。mysqlNoone说,索引已填充的表很快,特别是因为您似乎要索引varchar列。DBMS第一次必须遍历每一行并将其添加到索引中。我猜你没有在我的回答中读到第三段。