[前][次][番号順一覧][スレッド一覧]

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]