根据特定 SQL 查询创建索引

Creating indexes based on specific SQL queries

我有这两个表:

orders 
    order_id, customer_id, order_date, product_id, order_quantity

products 
    product_id, ProductName, SupplierID, UnitPrice, UnitsInStock

order_idproduct_id 是主键。

我想根据这些定期执行的查询创建索引

SELECT *
FROM orders
WHERE product_id = @id

SELECT *
FROM orders
WHERE customer_id = @id AND order_date > @date

SELECT *
FROM orders
WHERE order_date > @date1 AND order_date < @date2

SELECT product_id, ProductName, UnitsInstock
FROM products
WHERE UnitsInstock < @units

SELECT *
FROM products
WHERE ProductName = @name AND SupplierID = @Id

我对如何创建这些索引感到困惑,因为我不确切知道“@”符号在 SQL 中的工作原理以及如何在带有 where 子句语句的索引中实现它。任何帮助将不胜感激!

参数与索引无关。 索引基于您在 WHERE 子句中使用较多的列。 在第一个 table 中,您使用更多: product_id customer_id order_date 在第二个 table 中,您使用更多: 单位库存 产品名称 供应商 ID

您可以在此列上添加索引,但请记住,索引有利于查询 table 但不利于在 table 中插入和更新(insert/update比较慢)。

另一方面,@field 只是参数(您可以将其视为变量) 在脚本的其他部分,此参数正在获取值。