1
私は、MySQLでインデックスについて2つの質問をお願いしたいと思います:
1.それはMyISAMのエンジンでタイプ HASHのインデックスを持つことが可能ですか?
2.などの計算された値にインデックスを作成することは可能です。
MySQLの複雑なインデックス
CREATE INDEX AD_MAIN_CATEGORY ON ad ((category_id % 100) ASC) USING BTREE;
私はすべてのカテゴリを選択して、メイン/サブカテゴリー内の広告の数をカウントクエリを持っています。各広告には、main_category_idを計算できるsubcategory_idのみがあります(subcategory_id = 120 => main_category_id = 100)。悪(遅い)クエリ:
SELECT `c`.*, (SELECT COUNT(*) FROM ad WHERE IF(c.parent_id = 0,(ad.category_id DIV 100) * 100 = c.id,ad.category_id=c.id)) AS `count`, `ct`.`label` FROM `category` AS `c` INNER JOIN `category_translation` AS `ct` ON c.id = ct.category_id WHERE (ct.language_id = 1) ORDER BY `c`.`id` ASC
ありがとうございます:) –