+
DevOps研发效能
媒体矩阵
开源中国APP
数据库
数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
关注 181.9W
加载中
百度开发者中心
百度开发者中心 发表了博客
索引可以说是数据库中的一个大心脏了,如果说一个数据库少了索引,那么数据库本身存在的意义就不大了,和普通的文件没什么两样。所以说一个好的索引对数据库系统尤其重要,今天来说说MySQL索引,从细节和实际业务的角度看看在MySQL中B+树索引好处,以及我们在使用索引时需要注意的知识点。 一、合理利用索引 在工作中,我们可能判断数据表中的一个字段是不是需要加索引的最直接办法就是:这个字段会不会经常出现在我们的where条...
收藏 127
24
暝霄愫殇
暝霄愫殇 架构师 发表了博客
### MySQL的主从复制 - 一般在大规模的项目上,都是使用MySQL的复制功能来创建MySQL的主从集群的。 - 主要是可以通过为数据库服务器配置一个或多个备库的方式来进行数据同步。 - 复制的功能不仅有利于构建高性能应用,同时也是高可用、可扩展性、灾难恢复、备份以及数据仓库等工作的基础。 - 通过MySQL的主从复制来实现读写分离,相比单点数据库又读又写来说,提升了业务系统性能,优化了用户体验。 - 另外通过主从复制实现了数...
Java技术栈
Java技术栈 程序员 发表了博客
来源:https://llc687.top/131.html > 本文主要探讨MySQL InnoDB 引擎下ACID的实现原理,对于诸如什么是事务,隔离级别的含义等基础知识不做过多阐述。 ## ACID MySQL 作为一个关系型数据库,以最常见的 InnoDB 引擎来说,是如何保证 ACID 的。 - **(Atomicity**)**原子性:** 事务是最小的执行单位,不允许分割。原子性确保动作要么全部完成,要么完全不起作用; - **(Consistency)一致性:** 执行事务前后,数据保持一致;...
Java技术栈
Java技术栈 程序员 发表了博客
来源:toutiao.com/i6675622107390411276/ ![](https://oscimg.oschina.net/oscnet/up-e20baf006d0dc123c902742b33a3f36a9bd.png) 容器的定义:容器是为了解决“在切换运行环境时,如何保证软件能够正常运行”这一问题。 目前,容器和 Docker 依旧是技术领域最热门的词语,无状态的服务容器化已经是大势所趋,同时也带来了一个热点问题被大家所争论不以:**数据库 MySQL 是否需要容器化**? 认真分析大家的各种观点,发现赞同者...
白鹿第一帅
白鹿第一帅 架构师 发表了博客
文章目录 前言 一、控制面板卸载 MySQL 二、删除 MySQL 数据库安装文件夹 三、打开注册表编辑器 四、删除残留注册表文件 五、删除系统盘残留数据文件 总结 前言 如果我们 MySQL 数据库密码遗忘需要重新安装 MySQL 数据库时,就需要先卸载掉本地的文件。而 MySQL 并不是像其他应用程序一样容易卸载,这个步骤是相当繁琐的,若想完全卸载不留痕迹,就需要对注册表信息进行详细的清理,所以整理以下步骤供大家参考。 一、控制面板卸...
vivo互联网技术
vivo互联网技术 运营/编辑 发表了博客
一、初识MGR 相信很多人对MGR这个词比较陌生,其实MGR(全称 MySQL Group Replication 【MySQL 组复制】)是Oracle MySQL于2016年12月发布MySQL 5.7.17推出的一个全新高可用和高扩展的解决方案。具备以下特性: 高一致性,基于原生复制及Paxos协议的组复制技术,并以插件的方式提供,提供一致数据安全保证; 高容错性,只要不是大多数节点坏掉就可以继续工作,有自动检测机制,当不同节点产生资源争用冲突时,不会出现错误,按照先...
xcbeyond
xcbeyond 架构师 发表了博客
在MySQL中,时间是咱们用到最多的类型,建表时,对于时间字段类型的选择,你是如何选择的呢?有人会说timestamp,也有人会说datetime,那么我们到底如何选择呢,它们又有什么区别?今天就和大家一起来看看。 一、MySQL中如何表示当前时间? 其实,表达方式还是蛮多的,汇总如下: CURRENT_TIMESTAMP CURRENT_TIMESTAMP() NOW() LOCALTIME LOCALTIME() LOCALTIMESTAMP LOCALTIMESTAMP() 二、关于TIMESTAMP和DATETIME的比较 一个完...
小傅哥
小傅哥 架构师 发表了博客
![](https://img-blog.csdnimg.cn/434518d326d343d79429b3ae939a933c.png) 作者:小傅哥 博客:[https://bugstack.cn](https://bugstack.cn) >沉淀、分享、成长,让自己和他人都能有所收获!😄 ## 一、前言 `什么?Java 面试就像造火箭🚀` ![](https://img-blog.csdnimg.cn/img_convert/c77ee71d5e901f949dc4c7fdeefceb5d.png) **单纯了!** 以前我也一直想 Java 面试就好好面试呗,*嘎哈么*总考一些工作中也用不到的玩意,...
程序猿阿星 程序员 发表了博客
# 前言 `MySQL`中执行一条`SQL`语句,相应表数据的读写都是由存储引擎去做(**更新数据、查询数据**)。 在这个过程,存储引擎需要决策一些事情 - **数据是从内存查还是从硬盘查** - **数据是更新在内存,还是硬盘** - **内存的数据什么时候同步到硬盘** 所以存储引擎会按照内部逻辑与内存、硬盘交互。 ![](https://cdn.jsdelivr.net/gh/18702524676/CND5/image/mysql/02/01.png) 我们可以按需选择存储引擎,比如常见的 `InnoD...
SH的全栈笔记
SH的全栈笔记 发表了博客
不知道大家有没有想过下面这件事? > 我们平时调用 `DELETE` 在 MySQL 中删除的数据都去哪儿了? 这还用问吗?当然是被删除了啊 ![](https://tva1.sinaimg.cn/large/008i3skNgy1gsvfwy3yyvj30d20b4wev.jpg) 那么这里又有个新的问题了,如果在 InnoDB 下,多事务并发的情况下,如果事务A删除了 `id=1` 的数据,同时事务B又去读取 `id=1` 的数据,如果这条数据真的被删除了,那 MVCC 拿啥数据返回给用户呢? 没错,这就需要了解一...
冰-河
冰-河 发表了博客
大家好,我是冰河~~ 今天我们一起来聊聊MySQL 8.x版本中新增的三大索引。MySQL 8.x中新增了三种索引方式,这三种索引方式直接让MySQL原地起飞了,如下所示。 隐藏索引 降序索引 函数索引 一、隐藏索引 1.隐藏索引概述 MySQL 8.0开始支持隐藏索引(invisible index),不可见索引。 隐藏索引不会被优化器使用,但仍然需要进行维护。 应用场景:软删除、灰度发布。 在之前MySQL的版本中,只能通过显式的方式删除索引,如果删除后发...
SH的全栈笔记
SH的全栈笔记 发表了博客
之前的文章简单的介绍了 MySQL 的事务隔离级别,它们分别是:读未提交、读已提交、可重复读、串行化。这篇文章我们就来探索一下 MySQL 事务隔离级别的底层原理。 > 本篇文章针对 InnoDB 存储引擎 ### 多版本并发控制 我们知道,读未提交会造成脏读、幻读、不可重复读,读已提交会造成幻读、不可重复读,可重复读可能会有幻读,和串行化就不会有这些问题。 那 InnoDB 到底是怎么解决这些问题的呢?又或者,你有没有想过造成脏读、...
yes的练级攻略
yes的练级攻略 发表了博客
你好,我是yes。 前段时间写了一篇[关于 MySQL 锁的文章](http://mp.weixin.qq.com/s?__biz=MzkxNTE3NjQ3MA==&mid=2247490365&idx=1&sn=5e96739ce949eaa9fd8435834494cfc6&chksm=c1627644f615ff5248b4221480b3bb6df42cdf076c86dc228a062d99d6035127d61e9ae8ffb7&scene=21#wechat_redirect),一些小伙伴们在阅读之后产生了一些疑问,这些问题还挺有代表性的,所以在这里做个实验,来用事实探究一番。 那篇文章提到了记录锁(Rec...
PHP开发工程师
PHP开发工程师 发表了博客
前言 由于缓存的高并发和高性能已经在各种项目中被广泛使用,在读取缓存这方面基本都是一致的,大概都是按照下图的流程进行操作: 但是在更新缓存方面,是更新完数据库再更新缓存还是直接删除缓存呢?又或者是先删除缓存再更新数据库?在这一点上就值得探讨了。 一致性方案 在实际项目开发中需要保证数据库和缓存中的数据一致,否则人家充值了100块,不断刷新却还是显示0.01元,岂不是尴尬?从理论上来说,为缓存设置过期时间是...
SH的全栈笔记
SH的全栈笔记 发表了博客
这应该是 MySQL 原理中最底层的部分了,我们存在 MySQL 中的数据,到底在磁盘上长啥样。你可能会说,数据不都存储在**聚簇索引**中吗?但很遗憾,你并没有回答我的问题。我会再问你,那聚簇索引在磁盘上又长啥样? 就像 Redis 的 RDB 文件,最终落在磁盘上就是一个真真切切的 `dump.rdb` 文件,而 MySQL 就显得有点迷,我们只知道通过 SQL 去拿数据,并不知道数据最终是以什么方式进行存储的。当然,了解其底层的存储逻辑,并不...
又拍云
又拍云 程序员 发表了博客
平时开发中经常需要记录时间,比如用于记录某条记录的创建时间以及修改时间。在数据库中存储时间的方式有很多种,比如 MySQL 本身就提供了日期类型,比如 DATETIME,TIMESTAMEP 等,我们也可以直接存储时间戳为 INT 类型,也有人直接将时间存储为字符串类型。 那么到底哪种存储时间的方式更好呢? ## 不要使用字符串存储时间类型 这是初学者很容易犯的错误,容易直接将字段设置为 VARCHAR 类型,存储"2021-01-01 00:00:00"这样的...
码农架构
码农架构 技术主管 发表了博客
以前老版本 MySQL 添加一列的方式: 会造成锁表,简易过程如下: 新建一个和 Table1 完全同构的 Table2 对表 Table1 加写锁 在表 Table2 上执行 ALTER TABLE 你的表 ADD COLUMN 新列 char(128) 将 Table1 中的数据拷贝到 Table2 将 Table2 重命名为 Table1 并移除 Table1,释放所有相关的锁 如果数据量特别特别大,那么锁表时间很长,期间所有表更新都会阻塞,线上业务不能正常执行。 针对 MySQL 5.6(不包含)之前的版本,通过触...
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
返回顶部
顶部