在 ANSI SQL 中,创建索引的标准语法如下(适用于大多数关系型数据库,如 PostgreSQL、Oracle、SQL Server、MySQL 的 InnoDB 等):
CREATE INDEX index_name
ON table_name (column1 [, column2, ...]);
CREATE INDEX idx_employee_name
ON employee (last_name);
用于保证索引列的值唯一:
CREATE UNIQUE INDEX index_name
ON table_name (column1 [, column2, ...]);
CREATE UNIQUE INDEX idx_email
ON user (email);
✅ 唯一索引 ≠ 主键,但功能类似(主键会自动创建唯一索引)
CREATE INDEX idx_emp_dept_salary
ON employee (department_id, salary);
⚠️ 联合索引有 最左前缀原则,查询条件顺序很重要。
DROP INDEX index_name ON table_name;
⚠️ 注意:
- Oracle / PostgreSQL 支持
DROP INDEX index_name- SQL Server / MySQL 需要
ON table_name
不同数据库语法不同,例如:
\d table_name
SHOW INDEX FROM table_name;
sp_helpindex 'table_name';
索引不是越多越好
适合建索引的列
不适合建索引的列
CREATE TABLE orders (
order_id INT PRIMARY KEY,
customer_id INT,
order_date DATE,
status VARCHAR(20)
);
CREATE INDEX idx_orders_customer
ON orders (customer_id);
CREATE INDEX idx_orders_date_status
ON orders (order_date, status);
如果你愿意,可以告诉我:
我可以帮你 设计更合理的索引方案。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。