index_usage_key_quantity_price.yml 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. # CREATE INDEX idx_orders_view_qty on orders_view (quantity);
  2. queries:
  3. - query: |
  4. ```mzsql
  5. SELECT * FROM orders_view;
  6. ```
  7. index_usage: Index scan.
  8. - query: |
  9. ```mzsql
  10. SELECT * FROM orders_view WHERE quantity = 10;
  11. ```
  12. index_usage: |
  13. Index scan. Query does not include equality conditions on **all** indexed
  14. fields.
  15. - query: |
  16. ```mzsql
  17. SELECT * FROM orders_view WHERE quantity = 10 AND price = 2.50;
  18. ```
  19. index_usage: Point lookup.
  20. - query: |
  21. ```mzsql
  22. SELECT * FROM orders_view WHERE quantity = 10 OR price = 2.50;
  23. ```
  24. index_usage: |
  25. Index scan. Query uses `OR` to combine conditions on **different** fields.
  26. - query: |
  27. ```mzsql
  28. SELECT * FROM orders_view
  29. WHERE quantity = 10 AND (price = 2.50 OR price = 3.00);
  30. ```
  31. index_usage: |
  32. Point lookup. Query uses `OR` to combine conditions on **same** field and `AND` to combine conditions on **different** fields.
  33. - query: |
  34. ```mzsql
  35. SELECT * FROM orders_view
  36. WHERE quantity = 10 AND price = 2.50 AND item = 'cupcake';
  37. ```
  38. index_usage: |
  39. Point lookup on the index keys `quantity` and `price`, then filter on
  40. `item`.
  41. - query: |
  42. ```mzsql
  43. SELECT * FROM orders_view
  44. WHERE quantity = 10 AND price = 2.50 OR item = 'cupcake';
  45. ```
  46. index_usage: |
  47. Index scan. Query uses `OR` to combine conditions on **different** fields.