面试题答案
一键面试- 添加合适的索引
- 适用场景:当查询语句经常使用特定列进行过滤、排序或连接操作时。例如,在
SELECT * FROM users WHERE age > 30;
语句中,为age
列添加索引可以显著提升查询性能,因为数据库可以通过索引快速定位符合条件的行。
- 适用场景:当查询语句经常使用特定列进行过滤、排序或连接操作时。例如,在
- 删除不必要的索引
- 适用场景:如果存在一些很少被查询使用到的索引,这些索引不仅占用额外的存储空间,还会在数据插入、更新和删除操作时增加维护成本。例如,某个索引是为了特定历史查询需求创建,但该查询不再使用,就可以考虑删除该索引,提升写操作性能。
- 优化复合索引
- 适用场景:当查询涉及多个列的条件组合时,合理构建复合索引能提升性能。例如,
SELECT * FROM orders WHERE customer_id = 123 AND order_date > '2023 - 01 - 01';
,可以创建(customer_id, order_date)
的复合索引,按照查询条件中列的顺序创建,能更好地利用索引进行快速查询。
- 适用场景:当查询涉及多个列的条件组合时,合理构建复合索引能提升性能。例如,
- 重建或优化现有索引
- 适用场景:长时间的数据插入、更新和删除操作可能导致索引碎片化,降低查询性能。对于InnoDB存储引擎,可以使用
ALTER TABLE table_name ENGINE=InnoDB;
语句重建索引,重新组织索引结构,提升性能。这种方法适用于索引碎片化严重,导致查询性能明显下降的场景。
- 适用场景:长时间的数据插入、更新和删除操作可能导致索引碎片化,降低查询性能。对于InnoDB存储引擎,可以使用