Optimizing Mysql Queries With In Operator
I have a MySQL database with a fairly large table where the products are. Each of them has its own id and categoryId field where there is a category id belongs to this product. Now
Solution 1:
Index on categoryId won't help in this case, IN (...) queries will produce sequence scan instead of index lookup anyway.
I would consider first redesigning the system to get rid of multiple category select and if it is not appropriate, caching query results.
For example, you can create a helper table items_category_groups(hash, item_id) and after client query on multiple categories hash their combined ids and lookup this table. If not found, make an expensive query and fill this table. If found, make a cheap query joining these tables. Other caching tools like memcached will work too.
Post a Comment for "Optimizing Mysql Queries With In Operator"