索引是数据库提升数据查询效率的核心数据结构,创建索引需通过专用 SQL 语句实现,其使用有明确的适配原则,同时兼具提升查询性能的优点和增加写入开销的缺点,是数据库性能优化的核心手段。
具体来说,创建索引分两种常见场景:
一是创建数据表时同步创建索引,以 MySQL 为例,语句为 CREATE TABLE 表名 (字段 1 类型,字段 2 类型,INDEX 索引名 (字段名)); 若需创建唯一索引,可将 INDEX 替换为 UNIQUE;
二是数据表已创建后新增索引,语句为 CREATE [UNIQUE/FULLTEXT] INDEX 索引名 ON 表名 (字段名); 其中 FULLTEXT 适用于文本内容的全文检索。索引的使用原则需把握核心:优先为查询频繁的字段(如 WHERE、JOIN 条件字段)、数据区分度高的字段(如身份证号)创建索引;避免为更新频繁的字段(如订单状态)、数据量极小的表、重复值高的字段(如性别)创建索引,且复合索引需遵循最左匹配原则,同时杜绝过度创建索引。
索引的优点集中在查询优化:大幅降低数据库扫描的数据量,显著提升单表查询、关联查询效率,优化排序、分组操作的性能;
缺点则体现在写入和存储层面:增加 INSERT、UPDATE、DELETE 操作的开销(需同步更新索引结构),占用额外磁盘存储空间,过度索引还会增加数据库优化器选择执行计划的成本。
总而言之,创建索引需根据业务场景选择合适的语句和索引类型,遵循 “按需创建、宁缺毋滥” 的核心原则,合理利用其查询提速的优势,同时规避对数据写入和存储的负面影响,才能最大化发挥索引的性能优化价值。
总结
1、创建索引分建表时同步创建和建表后新增两种方式,核心语句为 CREATE INDEX 相关语法,可指定索引类型;
2、索引使用需聚焦查询高频、区分度高的字段,避开更新频繁、低区分度的字段,遵循最左匹配原则;
3、索引优点是提升查询效率,缺点是增加写入开销和存储占用,需平衡使用。