IT技术百货 2017-06-14 22:38

关系型数据库在互联网项目中应用极为广泛,今天小编就和大家分享几个数据库优化的几种方案:

建立索引

数据库优化第一步就是建立合理的索引,这也是最初级的优化,也是DBA常用的优化方案!MySql索引类型有:普通索引,主键索引,唯一索引,组合索引!

优化SQL语句

从业务角度,优化SQL语句;这里给大家分享一个例子,查询三个小时内,未处理的订单;使用一条SQL语句的效率要远远低于使用18条SQL语句,每条SQL语句搜取10分钟;

优化表结构

能用小字段类型,就尽量用小字段类型;如能用short,就不要用int;能用数字类型,就不要用字符串类型,举个例子,一般的订单号都是数字,很少有字母的。

拆分表

表的拆分一般分为横向拆分和纵向拆分,横向拆分不改变表结构,重复多建立几张表。这种优化方式类似于上文提到的SQL语句优化的例子;另一种是纵向拆分,两个表通过字段相关联。

分库

分库是数据库优化的一种较高级手段,实际上是横向分表的衍生;一般需要有中间件或者客户端做一些工作实现,这里给大家推荐两个分库的代码:一个是mycat,基于阿里coba开源的数据库中间件,很容易实现分库分表、主从切换功能。另一个当当网开源的一个库 sharding-jdbc

关于分库的知识,小编会在MYSQL高可用的文章中介绍!

好文推荐:

高可用分布式微服务架构搭建(附demo源码)

基于LVS+Keepalive搭建分布式集群(原理+实例)

50行代码搞定第一个机器学习系统(推荐系统)

互联网项目特点及高可用架构方案设计

欢迎关注,评论补充其他优化方案。

数据库性能优化的五种方案(mycat,基于阿里coba开源的数据库中间件,很容易实现分库分表、主从切换功能。另一个当当网开源的一个库 sharding-jdbc)相关推荐

  1. 数据库面试 - 如何设计才可以让系统从未分库分表动态切换到分库分表上?

    数据库面试 - 如何设计才可以让系统从未分库分表动态切换到分库分表上? 面试题 现在有一个未分库分表的系统,未来要分库分表,如何设计才可以让系统从未分库分表动态切换到分库分表上? 面试官心理分析 你看 ...

  2. 高可用Mysql架构_Mysql主从复制、Mysql双主热备、Mysql双主双从、Mysql读写分离(Mycat中间件)、Mysql分库分表架构(Mycat中间件)的演变...

    [Mysql主从复制] 解决的问题 数据分布:比如一共150台机器,分别往电信.网通.移动各放50台,这样无论在哪个网络访问都很快.其次按照地域,比如国内国外,北方南方,这样地域性访问解决了. 负载均 ...

  3. Android性能优化的5种方案

    指标 量化性能的指标有很多,但最重要的就是以下5种: 包大小 响应时间 内存 CPU 耗电量 优化性能就是可以从以上5点入手. 包大小优化 顾名思义就是减少apk包体积大小,apk大小主要取决于res ...

  4. MySQL数据库性能优化的八种方式

    1.选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快.因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽 ...

  5. 页面性能优化的五种办法

    前言 大部分用户希望网页能在 2 秒之内就完成加载.事实上,加载时间每多 1 秒,你就会流失 7% 的用户.如果加载需要太长时间,他们就会放弃访问. 以下是我总结性能优化常见的办法: 一.资源压缩与合 ...

  6. java字符串分割性能_String字符串性能优化的几种方案

    反编译后的代码: 1 //Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.2 //Jad home page:http://www ...

  7. 亿级数据量系统数据库性能优化方案

    一.数据库性能瓶颈主要原因 1.数据库连接 MySQL数据库默认连接为100,我们可以通过配置initialSize.minIdle.maxActive等进行调优,但由于硬件资源的限制,数据库连接不可 ...

  8. 玩转MySQL:一站式解决分库分表后患问题方案

    引言 上篇有关分分库分表一文中已经将分库分表的方法论全面阐述清楚了,总体看下来用一个字形容,那就是爽!(手动狗头)尤其是分库分表技术能够让数据存储层真正成为三高架构,但前面爽是爽了,接着一起来看看分库 ...

  9. mysql reorg_生产数据库性能优化之reorg和表重建

    生产数据库的性能调优是一个系统的工程,它不仅要求DBA熟悉db2的工作原理和各种性能指标,还要求DBA也要熟悉操作系统.存储等其他知识,甚至要求DBA熟悉应用的设计原理以及它使用数据库的方式等.这里, ...

  10. MySQL数据库知识学习(五)读写分离与分库分表策略

    通过数据库锁及存储引擎的学习,我们知道数据库在数据操作过程中为了保证数据的一致性是会给表或行加锁的,在网站发展的初期,由于没有太多访问量,一般来讲只需要一台服务器就够了,这的操作也不会有什么问题.但随 ...

最新文章

  1. POJ-1753 Flip Game 枚举 状态压缩
  2. OpenCV cv::Mat::checkVector用法的实例(附完整代码)
  3. r语言中mpg数据_R语言常用的数据处理的包(1)
  4. zeppelin的安装与使用
  5. 虚拟机下安装vmtool
  6. 在 520 这天,竟然有人把 Docker讲清楚了? | 原力计划
  7. oracle层级计算推演,云和恩墨的两道Oracle面试题
  8. python-同步(互斥)锁、递归锁、同步条件(event)
  9. ECharts三维图表
  10. atitit ui引擎之道 游戏引擎之道.docx 1. 概念 2 1.1. (cocos,createjs,dom) 2 2. 游戏引擎的构成(图形引擎(渲染系统),控件部件系统,事件系统 ,布局
  11. java编程中的点_java编程中所遇到的知识点(持续更新)
  12. 中信所 分区 查询_SCI期刊引证报告自科版2018(中信所分区)
  13. 当输入条件不符合规范c语言,【图片】【高二会考】选择判断答案大全【郑州12中吧】_百度贴吧...
  14. uncompyle6出现Unknown magic number 227
  15. 爱荷华州立 计算机博士,2020年爱荷华州立大学博士专业设置
  16. android缩放组件,Android可放大缩小的图片浏览缩放控件
  17. tensorflow--之将数字标签转化为one-hot
  18. 苹果录屏精灵_最新2018苹果APP排行榜,这四款没上榜真是太可惜了!
  19. 递归算法时间复杂度和空间复杂度分析与举例
  20. 解决Failed to load resource: net::ERR_INCOMPLETE_CHUNKED_ENCODING

热门文章

  1. linux内核学习10:中断和异常
  2. 对抗学习在语义分割上应用
  3. 商业银行资产托管业务读书笔记
  4. PLUPLOAD插件 ━━ 上传总结(分片上传,php后端处理)
  5. 最好用音频剪辑的软件,使用方法?
  6. 恩智浦杯(飞思卡尔)全国大学生智能车竞赛摄像头简单的图像失真矫正技术原理与实现(透视变换)
  7. freeswitch通话记录mysql_freeswitch电话计费详单入库方法
  8. EPLAN教程——端子图表端子数量超出图框了怎么办
  9. Padavan固件添加adbyby去广告功能
  10. MySQL 5.7详细下载安装配置教程