MySQLのINDEXに関する質問です。アドバイスお願いいたします。


Query2INDEX使
MySQL4,5


CREATETABLEIFNOTEXISTSitems(
idBIGINT(20)UNSIGNEDNOTNULLauto_increment,
prefecture_idINT(11)UNSIGNEDdefaultNULL,
item_type_idINT(11)UNSIGNEDdefaultNULL,
item_category_idINT(11)UNSIGNEDdefaultNULL,
data_idsLONGBLOBdefaultNULL,
PRIMARYKEY(id)
)ENGINE=MyISAM;

INDEX
ALTER TABLE items ADD INDEX index_all_keys (prefecture_id,item_type_id,item_category_id);


>Query1:INDEX
mysql>EXPLAIN SELECT id,data_ids FROM items WHERE prefecture_id IN (10,11,12,15,16,17,19,24,31)ANDitem_type_id=(1)ANDitem_category_idISNULL;

|1|SIMPLE|ITEM|range|index_all_keys|index_all_keys|20|NULL|11|Usingwhere|

>Query2:ININDEX
mysql>EXPLAIN SELECT id,data_ids FROM items WHERE prefecture_id IN(1,2,3,4,5,6,7,10,15,20,26,41,46)ANDitem_type_idIN(1,5,6,8,9,10,11)ANDitem_category_idIN(1,2,3,4,5,9,10);

|1|SIMPLE|ITEM|ALL|index_all_keys|NULL|NULL|NULL|13311|Usingwhere|  
回答の条件
  • 1人10回まで
  • 登録:
  • 終了:2009/03/03 19:39:42
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:chuken_kenkou No.1

回答回数722ベストアンサー獲得回数54

ポイント100pt

MySQL4,5
 

MySQL4.04.1

MySQL 5.05.14.04.1


 

213311MySQL

MySQL :: MySQL 5.1  :: 6.2.1 EXPLAIN使
id:ion10







MySQL4 => 4.0.27

MySQL5 => 5.0.67



INDEX


2009/03/03 15:59:01
  • id:ion10
     稿

  • id:ion10
     INDEX



    mysql> select count(*) from items;
    +----------+
    | count(*) |
    +----------+
    | 13311 | 
    +----------+

      
    mysql> select count(*) from items group by prefecture_id,item_type_id,item_category_id;
    +----------+
    | count(*) |
    +----------+
    | 1 | 
    .....
    | 1 | 
    +----------+
    13311 rows in set (0.09 sec)


    MySQL
    CardinalityINDEX





  • id:chuken_kenkou
     >MySQL
    >CardinalityINDEX
    >

    使MySQL


    ORDER BYGROUP BY使1/10
  • id:chuken_kenkou
     

    (1)
    (2)order bygroup by
    (3)countsum
    (4)



    使
    使RDBMS


  • id:ion10
     






    INDEX
    INDEX



    >Query1
    SELECT id FROM items WHERE prefecture_id IN(1,2,3,4,5,6,7,10,15,20,26,41,46);

    >Query2
    SELECT id FROM items WHERE item_type_id IN (1,5,6,8,9,10,11) AND id IN (<Query1>);

    >Query3
    SELECT data_ids FROM items WHERE item_category_id IN (1,2,3,4,5,9,10) AND id IN (<Query2>);



    90%
    10

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません