前言

前面三章基本把 TiDB 的环境弄好了,也做了一下简单测试,有兴趣的同学可以看一下:
TiDB 入门(一):TiDB 简介
TiDB 入门(二):虚拟机搭建 TiDB-Ansible 部署方案
TiDB 入门(三):简单测试
本来还有一些用 jmeter 压力测试的,后来测试的结果非常不好,就不想写出来了,因为自己毕竟是用虚拟机模拟的和 TiDB 官网推荐的配置差很多,如果自己写出来是有失偏颇的。

为何“跑路”

我们可以看到,TiDB 对性能要求特别高,简单看一下配置。参考:软硬件要求

开发测试环境:

组件 CPU 内存 本地存储 网络 实例数量(最低要求)
TiDB 8 核 16 GB+ 无特殊要求 千兆网卡 1(可与 PD 同机器
PD 4 核+ 8 GB+ SAS, 200 GB+ 千兆网卡 1(可与 TiDB 同机器
TiKV 8 核 32 GB+ SSD, 200 GB+ 千兆网卡 3

生产环境:

组件 CPU 内存 硬盘类型 网络 实例数量(最低要求)
TiDB 16 核+ 32 GB+ SAS 万兆网卡(2 块最佳) 2
PD 4 核+ 8 GB+ SSD 万兆网卡(2 块最佳) 3
TiKV 16 核+ 32 GB+ SSD 万兆网卡(2 块最佳) 3
监控 8 核+ 16 GB+ SAS 千兆网卡 1

开发环境大概就需要两台 DELL 服务器才能满足 CPU 和内存的要求。
并且最贵的应该是 SSD,因为是需要服务器级别的 SSD 所以会非常贵。如果要高可用 raid 5 磁盘序列需要再乘以 3 倍。
而生产环境感觉需要六台 DELL 服务器才能满足,大概是开发环境的 3 倍要求。

用不到

我们之前也简单测试过,以我那台虚拟机搭建的 TiDB 只有在数据量千万级别才会和 MySQL 的性能相当,
我好好回顾了一下自己公司用的表大小,过百万的都非常少,其实 MySQL 完全够用, 现在完全没有足够的理由去说服公司去使用 TiDB。

再次翻开TiDB 正确使用姿势, 结尾的一句话好好记住:
如果整篇文章你只想记住一句话,那就是数据条数少于 5000w 的场景下通常用不到 TiDB,TiDB 是为大规模的数据场景设计的。
如果还想记住一句话,那就是单机 MySQL 能满足的场景也用不到 TiDB。

结尾

当然这次“跑路”并不是永远放弃 TiDB,等单表业务需求到了 5000w 以上的时候,我们不能用 MySQL 解决问题的时候,我相信 TiDB 仍然是值得用的,因为 MySQL 做扩展的能力没有 TiDB 好,用现在一句流行的话来说,能用钱搞定的就不是问题,性能达到瓶颈,我用机器性能去堆就可以了。

当然以后还是会持续学习 TiDB 的,希望有一天能够用上。

TiDB入门(四):从入门到“跑路”的更多相关文章

  1. SQL 从入门到 DBA 删库跑路

    SQL 从入门到 DBA 删库跑路 一.基础 人员信息表: ID 姓名 性别 出生 婚否 学历 工资 工会 35009449 孙xx 男 1978-2-17 未婚 中专 3000 TRUE 35000 ...

  2. 大数据开发从入门小白到删库跑路(一)- 获取Hadoop

    Hadoop是一个可以通过相对简单编程模型实现跨多台计算机集群分布式处理大型数据集的框架.它不是依赖于高额成本的硬件可靠性来提供高可用性,Hadoop的设计能从单个服务器扩展到数千台机器,每个机器提供 ...

  3. 编程从入门到提高,然后放弃再跑路(Java)

    1.Java入门篇 1.1 基础入门和面向对象 1.1.1 编程基础 [01] Java语言的基本认识 [02] 类和对象 [03] 类的结构和创建对象 [04] 包和访问权限修饰符 [05] 利用p ...

  4. Spring全家桶系列–[SpringBoot入门到跑路]

    //本文作者:cuifuan Spring全家桶————[SpringBoot入门到跑路] 对于之前的Spring框架的使用,各种配置文件XML.properties一旦出错之后错误难寻,这也是为什么 ...

  5. 反手来个K8S入门到跑路

    layout: post title: 反手来个K8S入门到跑路 category: linux date: 2019-06-09 tags: linux k8s 反手来个K8S入门到跑路 前言 放假 ...

  6. 爬虫入门四 re

    title: 爬虫入门四 re date: 2020-03-14 16:49:00 categories: python tags: crawler 正则表达式与re库 1 正则表达式简介 编译原理学 ...

  7. 【原创】NIO框架入门(四):Android与MINA2、Netty4的跨平台UDP双向通信实战

    概述 本文演示的是一个Android客户端程序,通过UDP协议与两个典型的NIO框架服务端,实现跨平台双向通信的完整Demo. 当前由于NIO框架的流行,使得开发大并发.高性能的互联网服务端成为可能. ...

  8. python学习笔记--Django入门四 管理站点--二

    接上一节  python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...

  9. Swift语法基础入门四(构造函数, 懒加载)

    Swift语法基础入门四(构造函数, 懒加载) 存储属性 具备存储功能, 和OC中普通属性一样 // Swfit要求我们在创建对象时必须给所有的属性初始化 // 如果没办法保证在构造方法中初始化属性, ...

随机推荐

  1. multipart/form-data文件上传

    form表单的enctype属性:规定了form表单数据在发送到服务器时候的编码方式 application/x-www-form-urlencoded:默认编码方式 multipart/form-d ...

  2. Python之岭回归

    实现:# -*- coding: UTF-8 -*- import numpy as npfrom sklearn.linear_model import Ridge __author__ = 'zh ...

  3. dumpe2fs 命令的使用,转储 ext2/ext3/ext4 文件系统信息

    使用man 命令可以查看 dumpe2fs 命令具体的使用的方法: NAME dumpe2fs - dump ext2/ext3/ext4 filesystem information SYNOPSI ...

  4. Mysql基础之 binary关键字

    where子句的字符串比较是不区分大小写的,但是可以使用binary关键字设定where子句区分大小写

  5. java.lang.RuntimeException: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.demoDao.getXXX;

    java.lang.RuntimeException: org.apache.ibatis.binding.BindingException: Invalid bound statement (not ...

  6. 基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码

    比如 想跳到 mao.aspx 的页面 的div id="s" 的位置 那么 只用<a href="mao.aspx#s"> 就可实现跳转到指定位置 ...

  7. C# X509Certificate类 调用证书

    一.命名空间 using System.Security.Cryptography.X509Certificates; 二.调用代码 string certPath = Server.MapPath( ...

  8. UOJ #390. 【UNR #3】百鸽笼

    UOJ #390. [UNR #3]百鸽笼 题目链接 看这道题之前先看一道相似的题目 [PKUWC2018]猎人杀. 考虑类似的容斥: 我们不妨设处理\(1\)的概率. 我们令集合\(T\)中的所有鸽 ...

  9. 踏得网互联网新技术垂直搜索服务和分享 - HTML5动效/特效/动画搜索

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/iefreer/article/details/34917729 当前主流搜索引擎在解决互联网技术创意 ...

  10. 「JoyOI1080」N皇后

    这是菜鸡的我第一次写这类题目: 题意:就是在N*N的棋盘上,每一行,每一列,所有的对角线都只能有一个棋子. 先分析:假若N=4: 则为其中的一种答案.要输出左右的解,肯定要枚举出所有的解.那么非常自然 ...