Mysql数据库优化

要保证数据库的效率,可以从4个方面着手:

1.数据库设计,数据表表结构设计

2.sql语句的优化(ORM优化)

3.数据库的配置

  -- 最重要的参数就是内存

4.硬件资源

  -- 读写分离

 

 

一、数据库设计

数据库结构优化目的:

  1.减少冗余

  3.查询速度快

  2.使数据库维护时尽可能方便

结构设计方法从四方面着手:

  1.根据业务需求

  了解产品设计的存储需要,数据处理的需求,数据的完整性和安全性

  2.根据业务逻辑

  大概根据业务逻辑,分析数据库的存储逻辑,数据和对象之间的逻辑,例如:尽量使用in、is not in,而少用or逻辑

  3.物理设计

  根据数据类型和特点进行表结构设计,使用适当字段类型,因地制宜

  4.维护优化

  根据实际情况对索引、存储结构进行优化

 

遵循数据库设计三范式,但有时需要适当的反范式:

  三范式是建立模型最有效的保存数据方式,数据表体积小、减冗余、关联性强、易扩展。特别是OLTP数据库(Online Transaction Processing)联机事物处理,表示事务性非常高的系统,一般都是高可用的在线系统,数据表设计是必须遵循三范式。而适当的反范式则是减少表的关联,从而可以更好的实现索引优化,我们需针对更新的频率不高的字段来设计,可以允许少量冗余,直白的讲就是以空间换时间。

 

建立索引:

  索引字段必须是经常查询的字段

  联合索引,经常查询的字段作为条件查询,最左优先

  索引字段必须有足够的区分度

  表的主键选择较短的数据类型,因为索引引擎会保存主键的值,较短的数据类型可减少索引的磁盘空间,提升效率

 

二、框架一般都是使用ORM

  优化ORM:

  关键字段建索引,比如:外键 Foreignkey;

  使用适当字段类型

  减少数据库的连接数

  (想到Redis管道技术pipeline)

  对于Django中的QuerySets对象,具有缓存性,尽量重用

转载于:https://www.cnblogs.com/wanglieitem/p/10245140.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值