数据库优化


数据库优化的问题也是面试可能会问到的问题,据我所知,华为,cvte都问到过这个问题。


数据库优化一般从四个方面出发:数据库设计、sql语句优化、数据库参数配置、恰当的硬件资源和操作系统,这个顺序也表现了这四个方面对性能的影响。

一、数据库设计

1.适度的反范式,达到适度冗余的效果,避免数据库查询的时候join很多表,导致查询效率低。

2.适当建立索引,索引可以大幅度提高查询速度,但是以插入、更新、删除的速度为代价的,这些写操作,增加了大量的I/O。由于索引的存储结构不同于表的存储,一个表的索引所占的空间比数据所占的空间还打的情况经常发生。
因此,一般索引需要遵循这样的规则:
(1)索引的字段必须是经常作为查询条件的字段;
(2)如果索引多个字段,第一个字段要是经常作为查询条件的。如果只有第二个字段作为查询条件,这个索引不会起到作用;
(3)索引的字段必须有足够的区分度;
(4)MySql对于长字段支持前缀索引;

3.对表进行水平划分,如果一个表中记录数太多,比如上万条,而且需要经常检索,那么就可以对表进行水平划分,当然这需要数据在逻辑上可以划分。同时一个好的拆分依据也是非常重要的。

4.对表进行垂直划分,有写表记录数不多,可能就2、3万条,但是字段却很长,表占用空间很大,检索表时需要执行大量I/O,严重降低了性能。这个时候需要把大的字段拆分成另一个表,并与原表是一对一的关系。

5.选择适当的字段类型,特别是主键:选择字段的一般原则是保小不保大,能用占用字节小的字段就不用大字段。

6.文件、图片等大文件用文件系统存储,不用数据库,数据库只存储路径。

7.外键表示清楚,方便建立索引。

8.选择合适的引擎

二、SQL语句优化

sql语句优化工具:慢日志,它可以记录慢的sql语句;Explain可以看到mysql的执行计划;

三、数据库参数配置

最重要的参数就是内存

四、合理的硬件资源和操作系统


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值