index_usage_key_quantity.yml 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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: Point lookup.
  13. - query: |
  14. ```mzsql
  15. SELECT * FROM orders_view WHERE quantity IN (10, 20);
  16. ```
  17. index_usage: Point lookup.
  18. - query: |
  19. ```mzsql
  20. SELECT * FROM orders_view WHERE quantity = 10 OR quantity = 20;
  21. ```
  22. index_usage: |
  23. Point lookup. Query uses `OR` to combine conditions on the **same** field.
  24. - query: |
  25. ```mzsql
  26. SELECT * FROM orders_view WHERE quantity = 10 AND price = 5.00;
  27. ```
  28. index_usage: |
  29. Point lookup on `quantity`, then filter on `price`.
  30. - query: |
  31. ```mzsql
  32. SELECT * FROM orders_view WHERE (quantity, price) = (10, 5.00);
  33. ```
  34. index_usage: |
  35. Point lookup on `quantity`, then filter on `price`.
  36. - query: |
  37. ```mzsql
  38. SELECT * FROM orders_view WHERE quantity = 10 OR price = 5.00;
  39. ```
  40. index_usage: |
  41. Index scan. Query uses `OR` to combine conditions on **different** fields.
  42. - query: |
  43. ```mzsql
  44. SELECT * FROM orders_view WHERE quantity <= 10;
  45. ```
  46. index_usage: Index scan.
  47. - query: |
  48. ```mzsql
  49. SELECT * FROM orders_view WHERE round(quantity) = 20;
  50. ```
  51. index_usage: Index scan.
  52. - query: |
  53. ```mzsql
  54. -- Assume quantity is an integer
  55. SELECT * FROM orders_view WHERE quantity = 'hello';
  56. SELECT * FROM orders_view WHERE quantity::TEXT = 'hello';
  57. ```
  58. index_usage: |
  59. Index scan, assuming `quantity` field in `orders_view` is an integer.
  60. In the first query, the quantity is implicitly cast to text.
  61. In the second query, the quantity is explicitly cast to text.