我在一个有超过500万行的表上运行查询,此查询大约需要30分钟才能运行。由于显而易见的原因,这是不可接受的,我已经重写了查询,以便在10秒内完成。但我的根本问题是查询只使用大约12.5%的CPU,并且似乎没有使用服务器的完整资源。服务器有8个内核,在运行查询时似乎只使用1个100%/ 8个内核=每个内核12.5%的CPU。如果重要,数据库将使用MyISAM引擎。
据我所知,在大多数情况下,您不希望服务器陷入1次查询,但在这种情况下,它是可以接受的(查询运行在现实世界无法访问的测试服务器上,因此流量和其他运行服务不是问题)。
长话短说,是否有可能对一个以上的CPU提供单个查询访问权限,或者由于MySQL架构是不可能在单个查询中进行线程(在CPU级别)?我想还有第三种选择,只是巧合的是查询只使用12.5 cpu而MySQL可以为每个查询使用多个核心。