相关疑难解决方法(0)

使用索引,使用临时,使用filesort - 如何解决这个问题?

我正在开发一个事件跟踪系统,该系统使用少量查找表以及主要日志记录表.在我正在编写的报告中,可以选择一个对象来查看统计信息.界面按重要性降低(即命中)的顺序显示所有对象.

这两个表的架构(略微修剪,但你得到了要点):

CREATE TABLE IF NOT EXISTS `event_log` (
  `event_id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(5) DEFAULT NULL,
  `object_id` int(5) DEFAULT NULL,
  `event_date` datetime DEFAULT NULL,
  PRIMARY KEY (`event_id`),
  KEY `user_id` (`user_id`),
  KEY `object_id` (`object_id`)
);

CREATE TABLE IF NOT EXISTS `lookup_event_objects` (
  `object_id` int(11) NOT NULL AUTO_INCREMENT,
  `object_desc` varchar(255) NOT NULL,
  PRIMARY KEY (`object_id`)
);
Run Code Online (Sandbox Code Playgroud)

我遇到问题的查询如下.它与我的约100个条目的表一起工作正常,但是EXPLAIN让我有点担心.

    explain SELECT 
            el.object_id, 
            leo.object_desc, 
            COUNT(el.object_id) as count_rows
        FROM 
            event_log el 
            LEFT JOIN lookup_event_objects leo ON leo.object_id = el.object_id
        GROUP BY 
            el.object_id
        ORDER BY …
Run Code Online (Sandbox Code Playgroud)

mysql optimization select temporary filesort

50
推荐指数
2
解决办法
6万
查看次数

这两种联合表方法之间的区别?

考虑我们有两个表,UsersPosts.user_idPosts表中的外键,是表中的主键Users.

这两个sql查询之间有什么区别?

select user.name, post.title 
  from users as user, posts as post 
 where post.user_id = user.user_id;
Run Code Online (Sandbox Code Playgroud)

select user.name, post.title 
  from users as user join posts as post using user_id;
Run Code Online (Sandbox Code Playgroud)

mysql sql join

16
推荐指数
1
解决办法
2593
查看次数

mysql在连接查询中慢计数

所以我有两个表,我需要能够得到计数.其中一个包含内容,另一个包含它与类别表之间的关系.这是DDl:

CREATE TABLE content_en (
    id int(11) NOT NULL AUTO_INCREMENT,
    title varchar(100) DEFAULT NULL,
    uid int(11) DEFAULT NULL,
    date_added int(11) DEFAULT NULL,
    date_modified int(11) DEFAULT NULL,
    active tinyint(1) DEFAULT NULL,
    comment_count int(6) DEFAULT NULL,
    orderby tinyint(4) DEFAULT NULL,
    settings text,
    permalink varchar(255) DEFAULT NULL,
    code varchar(3) DEFAULT NULL,
    PRIMARY KEY (id),
    UNIQUE KEY id (id),
    UNIQUE KEY id_2 (id) USING BTREE,
    UNIQUE KEY combo (id,active) USING HASH,
    KEY code (code) USING BTREE
) ENGINE=MyISAM AUTO_INCREMENT=127126 DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)

而对于另一张桌子

CREATE TABLE …
Run Code Online (Sandbox Code Playgroud)

mysql sql

10
推荐指数
2
解决办法
5394
查看次数

标签 统计

mysql ×3

sql ×2

filesort ×1

join ×1

optimization ×1

select ×1

temporary ×1