一直在寻找分布式数据库解决方案,有看过MyCat,MyCat是一个数据库中间层产品,通过数据库分区技术能提供一个理论上无限扩展的大数据库,背后核心还是MySQL,我感觉不是终极解决方案,但可以算作是过度方案。
Tidb进入我的视野,觉得思路比较有趣,对外以MySQL 协议提供关系数据库存储服务,而核心是NoSQL技术实现分布式存储和分布式计算。先不看其核心部分,单从对外提供兼容 MySQL服务这个角度看,这是很聪明的选择,可以吸引庞大的MySQL用户群来尝试使用。
我们已经基于MySQL开发了很多项目,目前面临的一个瓶颈是随着数据量越来越大,存储空间扩展方面和查询性能方面都面临比较大的问题。一台服务器的存储容量总归是有限的,如何能有效利用其他服务器的存储资源?还有计算资源等。
一般场景下MySQL是搭建了主从环境,这意味着写数据时必须要写到主服务器上,其他从服务器可以同步到最新的数据。这样就可以通过查询从服务器实现读写分离,大大减轻主服务器的压力。
但随着数据量不断增长,主服务器和从服务器的存储都会出现难以满足的情况,这时可能会考虑数据分区的方案把数据库分拆成多个,分别存储到不同服务器上,但这需要迁移大量数据,可能在考虑不周的情况下会多次迁移数据,这在数据量到一定规模时迁移数据耗时会很长。而且应用程序往往也要适应这种数据库分拆做改动,成本可能很高。
有没有一种解决方案能弹性扩张数据库的存储资源和计算资源,也不需要复杂的数据分区以及改动相关应用程序?
这就是Tidb 的解决方案,底层的数据存储和计算资源可以动态扩展,前端的数据访问服务是以兼容MySQL的协议开放出来,堪称完美。
据Tidb官方介绍,他们在兼容MySQL方面花了相当的精力,据说是直接用MySQL的单元测试代码来测试他们的代码,保证完美兼容。
我试着搭了一个有3个节点的Tidb环境,把我们一个系统的接口调用日志数据转移过去,并且进行实时写入。同时也开发了统计分析方面的查询,测试跟MySQL的兼容性和性能,总体评估感觉是挺理想的,后面还需要持续测试一段时间观察一下。
根据Tidb官方网站上讲的,是希望满足100% OLTP数据库以及80%的OLAP数据库应用场景,这个目标是很有野心的,期待他们能达成,这样我们就可以有一个相当完美的数据库解决方案了。
相关推荐
在“output.txt”文件中,可能会记录了安装、升级或运行TiDB v3.0.12过程中的日志信息,包括但不限于系统配置、错误信息、性能统计等,这对于诊断和解决问题非常有用。 而“TiDB数据库 v3.0.12 [江西新余电信].zip...
【TiDB 2.1:新特性与未来展望】 TiDB 2.1 版本引入了一系列重大更新,包括在PD、TiKV、SQL层、工具以及未来的发展...未来,TiDB将继续致力于提高性能、稳定性以及用户体验,构建更强大、更灵活的分布式数据库系统。
**Python库pytidb-0.0.1-py3-none-any.whl详解** `pytidb` 是一个Python库,专为与...这个库的0.0.1版本可能还存在一些限制和不足,随着项目的发展,后续版本会不断优化和完善,提供更强大的功能和更好的用户体验。
总结一下,MySQL的`PADSPACE`校对规则使得在查询时,尾部空格会被忽略,这是为了提供更好的用户体验。但当需要精确匹配时,可以使用`LIKE`或`BINARY`来改变这种行为。理解这些规则对于编写更精确的SQL查询至关重要,...
《淘宝技术这十年》这本书详尽记录了中国互联网巨头阿里巴巴旗下淘宝网的技术发展历程,是一部深入探讨互联网技术变迁的重要文献。在这十年间,淘宝从一个初创的电商平台,发展成为全球知名的在线购物平台,其背后的...
总的来说,《淘宝技术这十年》不仅是一部记录淘宝技术发展历程的书籍,也是互联网行业技术创新的生动教材。它揭示了超大规模互联网系统的技术挑战与解决方案,对于从事或有意了解电商、云计算、大数据等领域的人来说...
- **数据库优化:** 考虑采用读写分离、分库分表等技术,或者更换为更适应高并发场景的数据库系统(如TiDB)或NoSQL数据库(如MongoDB)。 5. **资源管理与调度优化** - **资源高效利用:** 优化容器(如Docker)...
在企业级开发环境中,数据库表结构的文档是至关重要的,它记录了数据库的设计和结构,帮助团队成员理解和协作。然而,传统的做法往往需要开发者手动编写这些文档,这是一个耗时且容易出错的过程。如果忘记更新文档,...
它使用 vitess 的语法解析库作为基础,但由于某些复杂需求,还引入了 TiDB 的解析器进行补充,甚至利用 MySQL 执行返回结果来处理多种 SQL 方言,形成了一个灵活可扩展的解析机制。 2. **集成环境**:SOAR 提供了...