关于数据库的优化
程序员文章站
2022-06-01 22:41:47
...
对sql语句优化:
-
使用索引但不要过多索引类型
主键索引 (PRIMARY KEY) 唯一索引 (UNIQUE) 普通索引 (INDEX) 组合索引 (INDEX) 全文索引 (FULLTEXT)
-
就是能分开写的语句就分开写,不要一次性就解决,这样对效率来说是很大的开销的
-
避免使用不兼容的数据类型:如float和int,char和varchar等都是不兼容的。
-
尽量避免在where子句中对字段进行函数或表达式操作。
-
避免使用is not null(空值判断)、in、or、!=、<>、模糊查询等一些无法让系统使用索引操作的词。
合理的数据库表设计
数据库三范式:
第一范式:数据表中每个字段都必须是不可拆分的最小单元,也就是确保每一列的原子性;
第二范式:满足一范式后,表中每一列必须有唯一性,都必须依赖于主键;
第三范式:满足二范式后,表中的每一列只与主键直接相关而不是间接相关(外键也是直接相关),字段没有冗余。
数据库五大约束:
A:PRIMARY key:设置主键约束;
B:UNIQUE:设置唯一性约束,不能有重复值;
C:DEFAULT 默认值约束
D:NOT NULL:设置非空约束,该字段不能为空;
E:FOREIGN key :设置外键约束。
字段类型选择:
A:尽量使用TINYINT、SMALLINT、MEDIUM_INT作为整数类型而非INT,如果非负则加上UNSIGNED
B:VARCHAR的长度只分配真正需要的空间
C:使用枚举或整数代替字符串类型
D:尽量使用TIMESTAMP而非DATETIME
E:单表不要有太多字段,建议在20以内
F:避免使用NULL字段,很难查询优化且占用额外索引空间
配置文件的优化
例如:MySQL数据库my.cnf
提高数据库的硬件配置
jvm调优
开辟多线程实现异步
上一篇: 山科 的C语言2018练习题(电信)
下一篇: 对数据库事务的小总结