数据库优化心得

数据库优化心得


1. 减少过长查询语句

MySQL服务器与客户端通信方式是半双工的,因此应该尽量减少发送过长的查询语句 以及减少响应数据的大小(例如避免select *)最好加上limit 分页限制

2. 查询缓存
查询缓存  
    对于写密集型的最好不要打开查询缓存,来缓存查找的结果

    查询缓存不易过大,最好不要超过100MB

    尽量用小表代替大表

    如果使用缓存,尽量是批量插入数据,而不是逐条插入数据

    使用缓存来缓存查询数据,尽量是使用命令行的方式,不要去修改数据库的配置

3. 数据类型
数据类型
    尽量小而简单

    尽量不要用字符串来存储

    不要使用text

    尽量不动该表的结构

    在建立索引的字段上,要使用NOT NULL

    不要使用浮点型

    表的列尽量不要过多
4. 索引
索引
    尽量建立的索引即满足查询要求,又满足排序要求

    建立索引的依据,是经常使用某个字段为查询依据

    查询时,尽量不要用索引字段表达式  (sql不认识,无法解析)

    尽量不要在一个表中,建立太多索引,建立索引本身就是对写入性能的降低,而且太多索引并不能提高检索效率,

    查询条件包含多个索引时
         and关系,会优化查询
         or关系。会增加CPU的计算,反而降低查询效率

    索引不利于插入更新数据,因为插入或者更新数据,不仅要对数据库的记录操作,还要维护索引表的结构,对索引表进行更新
5. 连接查询
连接查询
    尽量不要使用连接查询
    如果使用连接查询,最好使用索引字段来关联
6. limit
如果偏移量很大,尽量使用延迟关联
    延迟关联:先利用条件检索出是索引字段的查询结果集,用该查询结果集在去查询所需要的结果集
    或者使用条件来代替,偏移量
7. 大量的数据处理
7.1 分片架构的算法
范围法
哈希法
7.2 将大量数据进行分表,分库
垂直拆分
    将一个业务的不同属性,进行分表或者分库存储

水平拆分
    按照业务的不同时间或者规则,将数据分表或者分库处理

特点:同一个分片里的数据库集群
    多个实例库本身没有直接的关联
    多个实例库的结构(水平拆分)完全相同
    多个实例库的数据之间没有交集

线性的提高了数据库的写入能力
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值