标签: 性能优化

36 篇文章

为什么MySQL不建议使用NULL作为列默认值?
这是一个很好的数据库设计问题。MySQL不建议使用NULL作为列默认值主要有以下几个原因,涉及性能、查询复杂性和数据完整性: 1. 存储空间问题 NULL值需要额外存储:在InnoDB中,每个可为NULL的列需要一个额外的位(bit)来标记是否为NULL 固定长度列中的NULL:如果是固定长度列(如CHAR),NULL仍然会占用完整长度 虽然现代M…
MySQL 中的索引数量是否越多越好?为什么?
MySQL 中的索引数量不是越多越好,索引虽然能提升查询性能,但也会带来明显的副作用。需要根据实际业务场景在查询性能和数据维护成本之间进行权衡。 一、索引的优点 加速数据检索​ 索引(特别是 B+Tree 索引)可大幅减少 WHERE、JOIN、ORDER BY、GROUP BY 的扫描数据量。 保证数据唯一性​ 唯一索引可避免数据重复。 优化排序…
MySQL 的索引下推是什么?
MySQL 索引下推(Index Condition Pushdown,ICP) 索引下推是 MySQL 5.6 引入的一项查询优化技术,它允许在存储引擎层执行部分 WHERE 条件的过滤,而不是将所有数据行返回到 Server 层后再进行过滤。 核心原理 在传统的查询处理中: 存储引擎使用索引定位数据 将完整的数据行返回给 Server 层 Se…