欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关于数据库的优化

程序员文章站 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调优


开辟多线程实现异步