how to avoid using temporary?
| From: | I am on the top of the world! Borlange University | Date: | Tue, 18 Jan 2011 07:33:08 +0000 |
| Subject: | how to avoid using temporary? | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-310827@lists.php.net to get a copy of this message | ||
heres my sql query:
EXPLAIN SELECT t1.szs_guige,SUM(t1.szs_shuliang) FROM szs_ck_ruku_items
t1,szs_ck_ruku t2 WHERE t1.szs_rukubianhao = t2.szs_rukubianhao AND
t2.szs_date>'2010-10-23' GROUP BY t1.szs_guige ORDER BY null
result:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 range PRIMARY,date date 3 \N 177 Using where; Using index; Using
temporary
1 SIMPLE t1 ref PRIMARY PRIMARY 32 szs_jihuadan.t2.szs_rukubianhao 4
table structure below:
CREATE TABLE
szs_ck_ruku (
szs_rukubianhao varchar(10) NOT NULL,
szs_kuhao varchar(10) NOT NULL,
szs_kuwei varchar(10) NOT NULL,
szs_xianghao varchar(4) NOT NULL,
szs_caozuoyuan varchar(10) NOT NULL,
szs_date date NOT NULL,
PRIMARY KEY (szs_rukubianhao,szs_kuhao,szs_kuwei),
KEY date (szs_date)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
CREATE TABLE szs_ck_ruku_items (
szs_rukubianhao varchar(10) NOT NULL,
szs_kuhao varchar(10) NOT NULL,
szs_kuwei varchar(10) NOT NULL,
szs_shengchanhao varchar(50) NOT NULL,
szs_guige varchar(100) NOT NULL,
szs_tuhao varchar(100) NOT NULL,
szs_shuliang int(8) NOT NULL,
szs_beizhu text NOT NULL,
PRIMARY KEY
(szs_rukubianhao,szs_kuhao,szs_kuwei,szs_shengchanhao,szs_guige,szs_tuhao),
KEY GG (szs_guige)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
how to avoid using temporary? i am confuzed......
thanks