数据库技术

MySQL官方的数据库中间件,mysql-proxy,有童鞋了解么? mysql-proxy是什么? mysql-proxy是mysql官方提供的mysql中间件服务,上游可接入若干个mysql-client,后端可连接若干个mysql-server。画外音:中间件有基于客户端的,也有基于服务端的,此为后者。 mysql-proxy使用什么协议? 它使用mysql协议,任何使用mysql-client的上游无需修改任何代码,即可迁移至m

2022-10-27  306
数据库技术

痛点 软件行业唯一不变的就是变化,比如功能上线之后,客户或 PM 需要对已有的功能增加一些合理的需求,完成这些工作必须通过添加字段解决,或者某些功能的实现需要通过增加字段来降低实现的复杂性等等。 这些问题都会改动线上的数据库表结构,一旦改动就会导致锁表,会使所有的写入操作一直等待,直到表锁关闭,特别是对于数据量大的热点表,添加一个字段可能会因为锁表时间过长而导致部分请求超时,这可能会对企业间接造成经济上的损失。 解决方案 增加 json

2022-10-27  301
数据库技术

写在前面 在上一篇文章《【前端】嘿,Nest.js实战开发系列 01 ── Nest.js初体验》中介绍了如何上手nest.js,同时详细介绍了如何进行项目创建、路由访问和创建模块,这些都是项目实践的基础。随着项目的推进,我们就要考虑如何实现数据库的连接和使用,这样可以用来实现前后端数据交互的数据存储。 环境准备: Mysql 5.7 TypeORM 0.2.34 TypeORM集成 在Nest.js中可以使用任意数据库,且内

2022-10-27  370
数据库技术

今天和大家简单聊聊MySQL的约束主键与唯一索引约束: PRIMARYKEYandUNIQUEIndexConstraints 了解诡异异常。 触发约束检测的时机: insert; update; 当检测到违反约束时,不同存储引擎的处理动作是不一样的。 如果存储引擎支持事务,SQL会自动回滚。 例子: createtablet1( idint(10)primarykey )engine=innodb; insertinto

2022-10-27  311
数据库技术

近年来公司业务迅猛发展,数据量爆炸式增长,随之而来的的是海量数据查询等带来的挑战,我们需要数据量在十亿,甚至百亿级别的规模时依然能以秒级甚至毫秒级的速度返回。 这样的话显然离不开搜索引擎的帮助,在搜索引擎中,ES(ElasticSearch)毫无疑问是其中的佼佼者,连续多年在 DBRanking 的搜索引擎中评测中排名第一,也是绝大多数大公司的首选。 图片来自 Pexels 那么它与传统的 DB 如 MySQL 相比有啥优势呢,ES

2022-10-27  295
数据库技术

开源、高性能、生态成熟的 MySQL 是国内应用最广泛的数据库,说 MySQL 见证了中国互联网的成长史,一点也不为过。 阿里基于 MySQL 构建了OceanBase;京东、腾讯时至今日也在大规模应用 MySQL。因此,它也理所应得成为了面试官必问、爱问的核心知识点。 很多朋友除了对索引、存储原理有疑惑外,当数据量达到一定规模时,MySQL 还会涉及到一个几乎必知必会的核心点——分库分表。 画外音:MySQL

2022-10-27  303
数据库技术

中大型项目中,一旦遇到数据量比较大,小伙伴应该都知道就应该对数据进行拆分了。有垂直和水平两种。 图片来自 Pexels 垂直拆分比较简单,也就是本来一个数据库,数据量大之后,从业务角度进行拆分多个库。 如下图,独立的拆分出订单库和用户库: 水平拆分的概念,是同一个业务数据量大之后,进行水平拆分。 上图中订单数据达到了 4000 万,我们也知道 MySQL 单表存储量推荐是百万级,如果不进行处理,MySQL 单表数据太大,会导致性能变

2022-10-27  301
数据库技术

我们在做SQL查询的时候,经常会用到各各种关联查询,对于不同的联接,效率还是有差别的,具体该用哪种呢?虽说数据库会做一些查询的优化,但了解原理,能有助我们直指核心。 开始join吧。 我们分析三种常见的join: Merge join,Hash join 和 NestedLoop Join。在此之前,我们先介绍一些关键词: Inner ralation 和 outer relation。 一个 relation 可以是: 一张表 一

2022-10-27  287
数据库技术

MyCat一个彻底开源的,面向企业应用开发的大数据库集群。基于阿里开源的Cobar产品而研发。能满足数据库数据大量存储;提高了查询性能。文章介绍如何实现MyCat连接MySQL实现主从分离,并集成SpringBoot实现读写分离。 MySQL配置主从关系 说明 192.168.0.105 Linux 数据库作为主master数据库 127.0.0.1 Window 作为从slave数据库 master主数据库配置 binlog是M

2022-10-27  275
数据库技术

应用场景:工作中经常遇到大量的数据需要整合、去重、按照特定格式导出等情况。如果用 Excel 操作,不仅费时费力,还不准确,有么有更高效的解决方案呢? 本文以17个 txt 文本,3万多条数据为例,使用 Python 连接 MySQL 数据库,实现快速操作。 别人加班干的活,我的 Python 小助手几秒钟就搞定了! 本文主要包括以下三方面内容: 数据写入 数据去重 数据导出 将数据写入 MySQL 数据库 下图所示文件是本文的

2022-10-27  284