MySQL 优化

​1.大表数据查询,怎么优化

  1. 优化 SQL和索引;
  2. 增加缓存,如 memcached、redis;
  3. 读写分离,可以采用主从复制,也可以采用主主复制;
  4. 使用 MySQL 自带的分区表,这对应用是透明的,无需改代码,但 SQL 语句是要针对分区表做优化的;
  5. 做垂直拆分,即根据模块的耦合度,将一个大的系统分为多个小的系统;
  6. 做水平拆分,要选择一个合理的 sharding key,为了有好的查询效率,表结果也要改动,做一定的冗余,应用也要改,sql 种尽量带 sharding key,将数据定位到限定的表上去查,而不是扫描全部的表。

把一个表按照某个字段,拆分到多个表里面,这个字段叫 sharding-key。


2.数据库结构如何优化?

  1. 将字段很多的表分解成多个表
    对于字段较多的表,如果有些字段的使用频率很低,可以将这些字段分离出来形成新表。因为当一个表的数据量很大时,会由于使用频率低的字段的存在而变慢。

  2. 增加中间表
    对于需要经常联合查询的表,可以建立中间表以提高查询效率。通过建立中间表,将需要通过联合查询的数据插入到中间表中,然后将原来的联合查询改为对中间表的查询。

  3. 增加冗余字段
    设计数据表时应尽量遵循范式理论的规约,尽可能的减少冗余字段,让数据库设计看起来精致、优雅。但是,合理的加入冗余字段可以提高查询速度。表的规范化程度越高,表和表之间的关系越多,需要连接查询的情况也就越多,性能也就越差。
    注意:冗余字段的值在一个表中修改了,就要想办法在其他表中更新,否则就会导致数据不一致的问题。

活动地址:CSDN21天学习挑战赛

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值