数据库优化

三个大方向

  1.优化sql以及数据库设计

   2.升级数据库以及硬件

  3.更换数据库类型,更换newSQL、noSQL数据库

大方向1之数据库设计篇

    --表库设计

     1.1 字段避免null,null值很难优化,推荐默认数字0替代

     1.2 尽量准确使用数据类型,并合理的设计长度,比如使用enum char而不用varchar,char定长的,varchar可变长,定长读取速度快占空间固定,可变长占空间随存数据大小变化但读取速度相对慢

     1.3单表不要太多字段

     1.4分区 分表 分库(读写分离)等

   --索引设计

     1.4 索引不是越多越好,要根据查询针对性的创建,考虑where和order by命令上涉及查询频繁列建立,

           可根据explain来查看索引使用率

     1.5 避免where条件中有null判断和数据,否则索引会失效,尽可能使用not null控制字段

     1.6值分布稀少字段不适合建立索引,比如性别只有两种值字段

     1.7不适用外键和unique,由程序保证约束

      1.8多条件查询频繁字段考虑建立联合索引,遵循最左原则可以涉及单条件查询。

      1.9索引遵循最左前原则

大方向1之sql优化篇

       1.1使用limit对查询结果限定

       1.2查询字段写出来不要写select * ,可以增加查询效率以及索引使用率

       1.3使用join替代子查询

       1.4拆分较大insert和delete语句

       1.5开启慢查询日志或者程序使用数据库查询监控找慢的sql

      1.6条件不作运算,避免使用%xxx  != <> 等查询样式

(以下为复制内容)

大方向2之升级数据库

    2.1  开源数据库会带来大量的运维成本且其工业品质和MySQL尚有差距,有很多坑要踩,如果你公司要求必须自建数据库,那么选择该类型产品。如tiDB pingcap/tidb,Cubrid Open Source Database With Enterprise Features。
     2.2  阿里云POLARDB,POLARDB 是阿里云自研的下一代关系型分布式云原生数据库,100%兼容MySQL,存储容量最高可达 100T,性能最高提升至 MySQL 的 6 倍。POLARDB 既融合了商业数据库稳定、可靠、高性能的特征,又具有开源数据库简单、可扩展、持续迭代的优势,而成本只需商用数据库的 1/10。
    2.3 阿里云OcenanBase,淘宝使用的,扛得住双十一,性能卓著,但是在公测中,我无法尝试,但值得期待。
     2.4阿里云HybridDB for MySQL (原PetaData),云数据库HybridDB for MySQL (原名PetaData)是同时支持海量数据在线事务(OLTP)和在线分析(OLAP)的HTAP(Hybrid Transaction/Analytical Processing)关系型数据库。
       2.5腾讯云DCDB,DCDB又名TDSQL,一种兼容MySQL协议和语法,支持自动水平拆分的高性能分布式数据库——即业务显示为完整的逻辑表,数据却均匀的拆分到多个分片中;每个分片默认采用主备架构,提供灾备、恢复、监控、不停机扩容等全套解决方案,适用于TB或PB级的海量数据场景。

 

大方向3之换数据库类型

     hadoop家族。hbase/hive怼上就是了。但是有很高的运维成本,一般公司是玩不起的,没十万投入是不会有很好的产出的!
我选择了阿里云的MaxCompute配合DataWorks,使用超级舒服,按量付费,成本极低。
     MaxCompute可以理解为开源的Hive,提供SQL/mapreduce/ai算法/python脚本/shell脚本等方式操作数据,数据以表格的形式展现,以分布式方式存储,采用定时任务和批处理的方式处理数据。DataWorks提供了一种工作流的方式管理你的数据处理任务和调度监控。
      当然你也可以选择阿里云hbase等其他产品,我这里主要是离线处理,故选择MaxCompute,基本都是图形界面操作,大概写了300行SQL,费用不超过100块钱就解决了数据处理问题

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值