mysql:15623
From: Etsuo SUMIYA <Etsuo SUMIYA <sumiya-e@xxxxxxxxxx>>
Date: Tue, 30 Aug 2011 20:29:54 +0900 (LMT)
Subject: [mysql 15623] mysql 5.5.9でのset names sjisで性能低下
sumiyaといいます。 環境: OS: Windows server 20008 r2 64bit mysql: mysql-5.5.9-winx64.zip mysql 5.1.56では問題ないquery がmysql 5.5.9で性能が出ない問題があ り調べたところ、set namesが関係していることが分かりました。 以下のサンプルで、"set names latin1"を実行すると、t2 のrowsが1とな り、期待した結果となりますが、"set names sjis"を実行すると、t2の rowsが10となり、indexがきかず、全スキャンかかってしまうようです。 バグのような気もするのですが、これは、仕様上しょうがないことなので しょうか? ---- ここから create database db DEFAULT CHARSET=sjis; create table t1 ( id int, dt datetime, tm time) ENGINE=MyISAM DEFAULT CHARSET=sjis; create table t2 ( name varchar(32), tm time, v varchar(255), INDEX ix(name,tm) ) ENGINE=MyISAM DEFAULT CHARSET=sjis; insert into t1 values(1,'2011-08-30 20:01','20:01'); insert into t2 values('n1','20:00','v1'); insert into t2 values('n1','20:01','v1'); insert into t2 values('n1','20:02','v1'); insert into t2 values('n1','20:03','v1'); insert into t2 values('n1','20:04','v1'); insert into t2 values('n1','20:05','v1'); insert into t2 values('n1','20:06','v1'); insert into t2 values('n1','20:07','v1'); insert into t2 values('n1','20:08','v1'); insert into t2 values('n1','20:09','v1'); insert into t2 values('n1','20:10','v1'); set names latin1; explain SELECT t2.name,t1.tm,t2.v FROM t2,t1 WHERE t2.name='n1' AND t2.tm =t1.tm AND date(t1.dt)='2011-08-30'; +----+-------------+-------+--------+---------------+------+---------+---------- ---+------+-------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-------+--------+---------------+------+---------+---------- ---+------+-------------+ | 1 | SIMPLE | t1 | system | NULL | NULL | NULL | NULL | 1 | | | 1 | SIMPLE | t2 | ref | ix | ix | 71 | const,con st | 1 | Using where | +----+-------------+-------+--------+---------------+------+---------+---------- ---+------+-------------+ 2 rows in set (0.03 sec) set names sjis; +----+-------------+-------+--------+---------------+------+---------+-------+-- ----+-------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | r ows | Extra | +----+-------------+-------+--------+---------------+------+---------+-------+-- ----+-------------+ | 1 | SIMPLE | t1 | system | NULL | NULL | NULL | NULL | 1 | | | 1 | SIMPLE | t2 | ref | ix | ix | 67 | const | 10 | Using where | +----+-------------+-------+--------+---------------+------+---------+-------+-- ----+-------------+ 2 rows in set (0.03 sec) ---- ここまで
-> 15623 2011-08-30 20:29 [Etsuo SUMIYA <sumiya] mysql 5.5.9でのset names sjisで性能低下 15624 2011-08-31 12:33 ┗[HIRATSUKA Sadao <hir] 15625 2011-08-31 18:27 ┗[Etsuo SUMIYA <sumiya] 15626 2011-09-01 09:50 ┗[HIRATSUKA Sadao <hir]