-
数据库设计优化:
- 尽量减小占用磁盘空间:
- 使用较小的数据类型,如
mediumint
替代int
。 - 定义字段为
not null
,除非需要允许空值。 - 对于不变的字段,如固定长度的字符串,采用
char
而不是varchar
。
- 使用较小的数据类型,如
- 优化索引设计:
- 主索引应尽可能短,以提高效率。
- 仅创建必要的索引,避免不必要的索引占用资源。
- 确保索引的第一部分是最常用的字段,以提高检索效率。
- 数据预处理:
- 在保存到数据库前对数据进行处理,如格式化、验证等。
- 所有字段都应有默认值,避免插入数据时出现异常。
- 尽量减小占用磁盘空间:
-
系统用途优化:
- SQL查询优化:
- 尽量使用长连接,减少连接和断开的开销。
- 使用
explain
解释复杂的SQL语句,优化查询执行计划。 - 对于关联表的比较,确保字段类型和长度一致。
- 使用
LIMIT
语句时,结合order by
或distinct
,避免全表扫描。
- 性能优化:
- 使用
truncate table
清空表的记录,而不是delete from
,以提高效率。 - 使用存储过程或用户定义函数(Stored Procedure或User Function)优化复杂逻辑。
- 对于大量数据的导入,使用
load data infile
命令比单独插入快得多。
- 使用
- 经常执行
OPTIMIZE TABLE
来整理碎片,以提高表的性能。
- SQL查询优化:
-
系统瓶颈优化:
- 磁盘搜索优化:
- 并行搜索,将数据分散存储在多个磁盘中,加快搜索时间。
- 磁盘读写(IO)优化:
- 并行读取数据,从多个介质中同时读取数据以提高读取速度。
- CPU周期优化:
- 增加CPU数量以处理存放在主内存中的大量数据。
- 内存带宽优化:
- 提高内存带宽,以加快CPU将更多数据存放到缓存中的速度。
- 将频繁进行比较的
date
类型的数据保存为unsigned int
类型,以提高比较速度。
- 磁盘搜索优化: