gpt4 book ai didi

mysql - 同一台机器上两个类似数据库中的相同mysql查询具有不同的性能

转载 作者:搜寻专家 更新时间:2023-10-30 23:43:46 24 4
gpt4 key购买 nike

我有两个数据库,一个用于开发,一个用于暂存,它们也在同一台机器上。我在查询两个表时遇到问题。这是表的架构

表 1 架构:

Table: import_schedule_t
Create Table: CREATE TABLE `import_schedule_t` (
`id` int(11) NOT NULL,
`theater_id` int(11) NOT NULL,
`movie_code` varchar(20) NOT NULL,
`start_time` datetime NOT NULL,
`end_time` datetime NOT NULL,
`pc_url` varchar(250) NOT NULL,
`mb_url` varchar(250) NOT NULL,
`url_type` int(11) DEFAULT '0',
`active` int(11) DEFAULT '1',
`intime` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`utime` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`schedule_date` datetime NOT NULL,
`movie_name` text NOT NULL,
`screen_name` text NOT NULL,
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

和表 2 架构:

 Table: wp_postmeta
Create Table: CREATE TABLE `wp_postmeta` (
`meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`post_id` bigint(20) unsigned NOT NULL DEFAULT '0',
`meta_key` varchar(255) DEFAULT NULL,
`meta_value` longtext,
PRIMARY KEY (`meta_id`),
KEY `post_id` (`post_id`),
KEY `meta_key` (`meta_key`(191))
) ENGINE=MyISAM AUTO_INCREMENT=1399270 DEFAULT CHARSET=utf8

这两个表都存在于我提到的两个数据库中。当我尝试运行此查询时:

 SELECT DISTINCT movie_code,post_id 
FROM import_schedule_t
INNER JOIN wp_postmeta
ON wp_postmeta.meta_value = import_schedule_t.movie_code
AND wp_postmeta.meta_key='update_movie_id'
WHERE DATE_FORMAT(start_time, '%Y-%m-%d')>= DATE_FORMAT(NOW(),'%Y-%m-%d')

开发数据库将在 20 秒内完成查询,但登台数据库只会运行 1.4 秒。

这是一个示例数据:wp_postmeta 表

+---------+---------+-----------------+------------+
| meta_id | post_id | meta_key | meta_value |
+---------+---------+-----------------+------------+
| 45150 | 74572 | update_movie_id | 74572 |
+---------+---------+-----------------+------------+

import_schedule_t表(省略部分字段)

+--------+------------+---------------------+---------------------+
| id | movie_code | start_time | end_time |
+--------+------------+---------------------+---------------------+
| 120884 | 74572 | 2015-07-04 12:50:00 | 2015-07-04 15:05:00 |
+--------+------------+---------------------+---------------------+

我已经尝试查看索引并优化表但没有成功,开发数据库上的查询时间仍然是 20 秒。

在开发中解释扩展

+----+-------------+-------------------+------+---------------+------+---------+------+---------+----------+--------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+-------------+-------------------+------+---------------+------+---------+------+---------+----------+--------------------------------+
| 1 | SIMPLE | import_schedule_t | ALL | NULL | NULL | NULL | NULL | 23597 | 100.00 | Using where; Using temporary |
| 1 | SIMPLE | wp_postmeta | ALL | NULL | NULL | NULL | NULL | 1461731 | 100.00 | Using where; Using join buffer |
+----+-------------+-------------------+------+---------------+------+---------+------+---------+----------+--------------------------------+

EXPLAIN EXTENDED 分期

+----+-------------+-------------------+------+---------------+------+---------+------+---------+----------+--------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+-------------+-------------------+------+---------------+------+---------+------+---------+----------+--------------------------------+
| 1 | SIMPLE | import_schedule_t | ALL | NULL | NULL | NULL | NULL | 9311 | 100.00 | Using where; Using temporary |
| 1 | SIMPLE | wp_postmeta | ALL | NULL | NULL | NULL | NULL | 1461384 | 100.00 | Using where; Using join buffer |
+----+-------------+-------------------+------+---------------+------+---------+------+---------+----------+--------------------------------+

最佳答案

如果两个数据库都在同一台机器上运行,具有相同的 MySQL 版本,在相同的硬盘驱动器中,具有完全相同的结构和数据,那么它可能是操作系统级别的碎片问题。关闭服务器并对磁盘进行碎片整理。

旁注:不要将日期作为字符串进行比较,因为日期是数据库内部的数字,并且它们的比较效率更高(WHERE start_time >= curdate() )。如果您为某些字段(如“事件”字段)定义较小的整数,也可以节省一些存储空间。一个 int 是一个 4 字节的数字,而一个 tinyint 是一个字节。

关于mysql - 同一台机器上两个类似数据库中的相同mysql查询具有不同的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31737479/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com