社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

使用超过10万条记录优化MySQL查询

Rafael Dorado • 3 年前 • 1554 次点击  

我希望你能帮我优化这个查询。

SELECT  carrier,
        SUM(views) AS views,
        SUM(views-1) AS repeated,
        SUM(views >= 1) AS unique_views,
        COUNT(1) AS total
    FROM  stats s1
    WHERE  id_link = 39
      AND  EXISTS (
        SELECT  *
            FROM  stats s2
            where  id_link = 39
              AND  s2.carrier = s1.carrier
            LIMIT  1, 1 )
    GROUP BY  carrier
    HAVING  COUNT(1) >= 1
    LIMIT  1,1
 UNION 
 SELECT  'TOTAL' AS carrier,
        SUM(views) AS views,
        SUM(views-1) AS repeated,
        SUM(views >= 1) AS unique_views,
        COUNT(1) AS total
    FROM  stats s4
    WHERE  id_link = 39
      AND  EXISTS (
        SELECT  *
            FROM  stats s3
            where  s3.carrier = s4.carrier
            LIMIT  1, 1 )

数据库:

CREATE TABLE `stats` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_link` int(11) NOT NULL,
`country` varchar(100) NOT NULL,
`ip` varchar(100) NOT NULL,
`views` varchar(1000) NOT NULL,
`asn` varchar(1000) NOT NULL,
`carrier` varchar(1000) NOT NULL,
`type` varchar(1000) NOT NULL,
`device` varchar(1000) NOT NULL,
`browser` varchar(1000) NOT NULL,
`fecha` datetime NOT NULL,
`referrer` varchar(2000) NOT NULL,
PRIMARY KEY (`id`),
KEY `id_link` (`id_link`),
CONSTRAINT `stats_ibfk_1` FOREIGN KEY (`id_link`) REFERENCES `campaigns` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=614606 DEFAULT CHARSET=utf8

我正在创建一个网络流量跟踪器。 我有一张叫做“统计”的桌子,放在那里;视图、ASN、IP、浏览器、设备等,其中包括“运营商”,即互联网服务提供商

我想看看每个运营商有多少次访问,账户重复了不止一次,有多少次独特的访问。

我的代码已经实现了我想要的功能,但它只在记录很少的情况下工作,现在我有超过10万条记录,服务器崩溃,它无法加载查询,我甚至必须重新启动apache。

这里我只留下一个说明性的图片

enter image description here

有没有办法加快这个查询的速度?

提前感谢您的评论和帮助。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/130501
 
1554 次点击  
文章 [ 2 ]  |  最新文章 3 年前