MySQL中的索引详解

前言

因为现在使用的MySQL默认存储引擎是Innodb,所以本篇文章重点讲述Innodb下的索引,顺带简单讲述其他引擎。希望小伙伴们能通过这片文章对MySQL的索引有更加清晰的认识,废话不多说,我们开始吧。

索引介绍

MySQL 5.7 - 通过 BINLOG 恢复数据

日常开发,运维中,经常会出现误删数据的情况。误删数据的类型大致可分为以下几类:

  • 使用 delete 误删行
  • 使用 drop table 或 truncate table 误删表
  • 使用 drop database 语句误删数据库
  • 使用 rm 命令误删整个 MySQL 实例

关于 JOIN 耐心总结,学不会你打我系列

现在随着各种数据库框架的盛行,在提高效率的同时也让我们忽略了很多底层的连接过程,这篇文章是对 SQL 连接过程梳理,并涉及到了现在常用的 SQL 标准。

其实标准就是在不同的时间,制定的一些写法或规范。

从 SQL 标准说起

在编写 SQL 语句前,需要先了解在不同版本的规范,因为随着版本的变化,在具体编写 SQL 时会有所不同。对于 SQL 来说,SQL92 和 SQL99 是最常见的两个 SQL 标准,92 和 99 对应其提出的年份。除此之外,还存在 SQL86、SQL89、SQL2003、SQL2008、SQL2011,SQL2016等等。

数据库并发处理 - MySQL锁简介

为什么要有锁?

我们都是知道,数据库中锁的设计是解决多用户同时访问共享资源时的并发问题。在访问共享资源时,锁定义了用户访问的规则。根据加锁的范围,MySQL 中的锁可大致分成全局锁,表级锁和行锁三类。在本篇文章中,会依次介绍三种类型的锁。在阅读本篇文章后,应该掌握如下的内容:

  1. 为什么要在备份时使用全局锁?
  2. 为什么推荐使用 InnoDB 作为引擎进行备份?
  3. 设置全局只读的方法
  4. 表级锁的两种类型
  5. MDL 导致数据库挂掉的问题
  6. 如何利用两段锁协议减少锁冲突
  7. 如何解决死锁
  8. 对于热点表,如何避免死锁检测的损耗?

事务究竟有没有被隔离

我们知道在 RR 级别下,对于一个事务来说,读到的值应该是相同的,但有没有想过为什么会这样,它是如何实现的?会不会有一些特殊的情况存在?本篇文章会详细的讲解 RR 级别下事务被隔离的原理。在阅读后应该了解如下的内容:

  • 了解 MySQL 中的两种视图
  • 了解 RR 级别下,如何实现的事务隔离
  • 了解什么是当前读,以及当前读会造成哪些问题

MySQL 事务初识

MySQL 中的事务?

对 MySQL 来说,事务通常是一组包含对数据库操作的集合。在执行时,只有在该组内的事务都执行成功,这个事务才算执行成功,否则就算失败。MySQL 中,事务支持是在引擎层实现的,像 MySQL 原生的 MyISAM 引擎就不支持事务,这也是被 InooDB 取代的重要原因。

有人会把Redis当做队列使用吗?

我经常听到很多人讨论,关于「把 Redis 当作队列来用是否合适」的问题。

有些人表示赞成,他们认为 Redis 很轻量,用作队列很方便。

也些人则反对,认为 Redis 会「丢」数据,最好还是用「专业」的队列中间件更稳妥。

究竟哪种方案更好呢?

这篇文章,我就和你聊一聊把 Redis 当作队列,究竟是否合适这个问题。

Spring Boot之@ControllerAdvice

  • @ControllerAdvice就是@Controller增强版
  • @ControllerAdvice主要用来处理全局数据,一般搭配@ExceptionHandler@ModelAttribute@InitBinder使用

全局异常处理

方法的参数可以有异常实例,HttpServletRequestHttpServletResponseModel

Gogs+Drone轻量搭配替代Gitlab+Jenkins实现自动化部署

在开发或生产环境中,我们经常会搞一套自动化部署方案(俗称一键部署)。比较流行的一种就是Gitlab+Jenkins实现方案,不过这种方案占用内存比较大,没有个8G内存,很难流畅运行,而且部署起来也不快。最近发现一款神器Drone,轻量级CI/DI工具,结合Gogs使用内存占用不到1G,几行脚本就能实现自动化部署,推荐给大家!

Gogs

Gogs简介


Powered by AppBlog.CN     浙ICP备14037229号

Copyright © 2012 - 2021 APP开发技术博客 All Rights Reserved.

访客数 : | 访问量 :