标签: mysql-slow-query-log

在大型 MySQL InnoDB 表上进行全计数查询真的那么慢吗?

我们有一个包含数百万个条目的大表。完整计数非常慢,请参见下面的代码。这对于 MySQL InnoDB 表来说很常见吗?难道就没有办法加速这个过程吗?即使使用查询缓存,它仍然“慢”。我还想知道,为什么具有 2.8 mio 条目的“通信”表的计数比具有 4.5 mio 条目的“事务”表的计数慢。

我知道使用 where 子句会快得多。我只是想知道表现不佳是否正常。

我们使用 Amazon RDS MySQL 5.7 和 m4.xlarge(4 个 CPU、16 GB RAM、500 GB 存储)。我也已经尝试过使用更多 CPU 和 RAM 的更大实例,但查询时间没有大的变化。

mysql> SELECT COUNT(*) FROM transaction;
+----------+
| COUNT(*) |
+----------+
|  4569880 |
+----------+
1 row in set (1 min 37.88 sec)

mysql> SELECT COUNT(*) FROM transaction;
+----------+
| count(*) |
+----------+
|  4569880 |
+----------+
1 row in set (1.44 sec)

mysql> SELECT COUNT(*) FROM communication;
+----------+
| count(*) …
Run Code Online (Sandbox Code Playgroud)

mysql performance innodb mysql-slow-query-log

4
推荐指数
1
解决办法
4628
查看次数

Mysql慢查询日志记录更快的查询

我在我的数据库服务器上设置了mysql慢查询日志,并将长查询时间设置为5.只需检查日志及其日志查询,只需几毫秒.任何人都知道为什么会这样?,这里有一些日志.

最后一个查询并不是最优化的.它说它检查了450000行,所以我不会惊讶地看到它在日志中.然而查询时间表示只花了0.2秒.慢查询日志还有更多信息,只需查询执行时间吗?

# Query_time: 0.000525  Lock_time: 0.000151 Rows_sent: 1  Rows_examined: 115
SET timestamp=1349393722;
SELECT `we_members`.*, `we_referrals`.`code` as referral_code
FROM (`we_members`)
LEFT JOIN `we_referrals` ON `we_referrals`.`m_id` = `we_members`.`id`
WHERE `we_members`.`facebook_id` = '100'
LIMIT 1;

# Query_time: 0.000748  Lock_time: 0.000104 Rows_sent: 3  Rows_examined: 691
SET timestamp=1349393722;
select distinct(m_id), m.first_name, m.facebook_id, m.photo_url from
            we_connections f
            left join we_members m on m.id = f.m_id
            where ( (f.friend_id = 75 or f.m_id = 75 and m.id != 75))
            and m.id >0
            and m.id != 75 …
Run Code Online (Sandbox Code Playgroud)

mysql mysql-slow-query-log

3
推荐指数
1
解决办法
847
查看次数

使用XAMPP 5.6.21启用mysql慢查询日志

我看过很多类似的问题,但我似乎找不到答案。我想为我的 MySQL 数据库设置slow query log。我看到很多答案说我应该访问 MySQL 命令行工具。我不确定如何找到这个工具,但我尝试通过以下方式访问它:

c:/xampp/mysql/bin/mysql -u root -p -h localhost

但在这里我得到了 MariaDB,它似乎与我之前见过的任何其他答案/教程不同。输入:

设置 log_slow_queries = ON;

给我错误

错误 1193 (HY000):未知的系统变量“log_slow_queries”

mysql xampp error-log mysql-slow-query-log

3
推荐指数
1
解决办法
4925
查看次数

如何确定慢查询?

我的网站正在经历一个非常缓慢的加载时间.我怀疑它可能是javascript或php导致更长的加载时间,但我已经在YSlow测试了我的网站,它的等级是B,我认为也不错.

现在我想检查我的数据库是否有查询错误,数据库索引会导致我的网站加载速度变慢.

是否有一些教程或技巧我可能会阅读或尝试测试数据库,以确定是否有慢查询?有关数据库管理的提示吗?

mysql indexing database-management mysql-slow-query-log

2
推荐指数
1
解决办法
5233
查看次数

为什么这些MySQL查询这么慢?

我不明白为什么以下查询显示在慢查询日志中,查询时间为12到20秒.

UPDATE `wp_postmeta` SET `meta_value` = '35' WHERE `post_id` = 1267 AND `meta_key` = 'views'
UPDATE `wp_postmeta` SET `meta_value` = '32' WHERE `post_id` = 874 AND `meta_key` = 'views'
UPDATE `wp_postmeta` SET `meta_value` = '122' WHERE `post_id` = 18557 AND `meta_key` = 'views'
UPDATE `wp_postmeta` SET `meta_value` = '3078' WHERE `post_id` = 21741 AND `meta_key` = 'views'
UPDATE `wp_postmeta` SET `meta_value` = '2657' WHERE `post_id` = 878 AND `meta_key` = 'views'
Run Code Online (Sandbox Code Playgroud)

它们看起来很正常,在phpMyAdmin中执行其中一个测试只需要0.0056秒.这里
wp_postmeta桌子大小是77,996.

我想知道为什么上面的查询是如此缓慢,如果有什么我可以做些来改进它们?

mysql wordpress mysql-slow-query-log

2
推荐指数
1
解决办法
1205
查看次数

如何分析 MySQL Slow Query Log 或 MySQL General Query Log?

分析日志是一个主要问题。如果你有一个遗留代码和成百上千的查询在运行,你肯定会对改进什么、改进哪里以及改进多少感到困惑,因为在你将投入多少努力之间总是需要权衡在某个优化问题上。

那么,第一步是分析我们哪里出错了。这只能通过正确分析日志来实现。没有它,您可能不知道您的应用程序到底出了什么问题。

那么你如何分析 MySQL 日志呢?

mysql linux log-analysis mysqldumpslow mysql-slow-query-log

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

MySQL SUM 查询非常慢

有一个名为transactions约 600 万行的表。下面的查询计算当前用户余额。这是我启用后的日志slow_query_log = 'ON'

# Time: 170406  9:51:48
# User@Host: root[root] @  [xx.xx.xx.xx]
# Thread_id: 13  Schema: main_db  QC_hit: No
# Query_time: 38.924823  Lock_time: 0.000034  Rows_sent: 1  Rows_examined: 773550
# Rows_affected: 0
SET timestamp=1491456108;
SELECT SUM(`Transaction`.`amount`) as total
    FROM `main_db`.`transactions` AS `Transaction`
    WHERE `Transaction`.`user_id` = 1008
      AND `Transaction`.`confirmed` = 1
    LIMIT 1;
Run Code Online (Sandbox Code Playgroud)

正如你所看到的~38 seconds

这是transactions表解释:

在此处输入图片说明

这个查询有时运行得很快(大约 1 秒),有时真的很慢!

任何帮助将不胜感激。

PS:

它是 InnoDB 并且transactions表有频繁的 INSERT 和 SELECT 操作。

我尝试使用 运行查询 …

mysql performance mysql-slow-query-log

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

查询拒绝使用索引

使用MySQL 5.5.28版,

我有一个表定义如下:

CREATE TABLE IF NOT EXISTS `groups` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(80) NOT NULL,
  `desc` text NOT NULL,
  `permissions` varchar(80) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 ;
Run Code Online (Sandbox Code Playgroud)

如您所见,它非常简单.我在id字段上有一个主键.现在,我使用以下内容查询它:

SELECT permissions FROM groups WHERE id IN ('9', '8', '6','14','11','7','5');
Run Code Online (Sandbox Code Playgroud)

不幸的是,它拒绝使用密钥,它出现在我的慢查询日志中.

对它执行EXPLAIN提供:

mysql> EXPLAIN SELECT permissions FROM groups WHERE id IN ('9', '8', '6','14','11','7','5');
+----+-------------+--------+------+---------------+------+---------+------+------+-------------+
| id | select_type | table  | type | possible_keys | key  | key_len | ref  | rows …
Run Code Online (Sandbox Code Playgroud)

mysql performance mysql-slow-query-log

0
推荐指数
1
解决办法
62
查看次数