数据库
数据库
普通网友
这个作者很懒,什么都没留下…
展开
-
了解和使用MySQL线程池,看这篇文章就够了。
最近出现多次由于上层组件异常导致DB雪崩的情况,笔者将部分监控DB启用了线程池功能,在使用线程池的过程中不断深入学习的同时,也遇到了不少问题。本文就来详细讲述一下MySQL线程池相关的知识,以帮助广大DBA快速了解MySQL的线程池机制,快速配置MySQL的线程池以及里面存在的一些坑。其实我想说,了解和使用MySQL线程池,看这篇文章就够了。一、为何要使用MySQL线程池在介绍为什么要使用线程池之前,我们都知道随着DB访问量越来越大,DB的响应时间也会随之越来越大,如下图:而DB的.原创 2020-07-15 17:17:47 · 1007 阅读 · 0 评论 -
SQL查找是否“存在“,告诉你一个最省时的方法
根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写 SQL 的时候,还要 SELECT count(*) 呢?无论是刚入道的程序员新星,还是精湛沙场多年的程序员老白,都是一如既往的 count目前多数人的写法多次 REVIEW 代码时,发现如现现象:业务代码中,需要根据一个或多个条件,查询是否存在记录,不关心有多少条记录。普遍的 SQL 及代码写法如下##### SQL写法:SELECT count(*) FROM table WHERE a = 1 AND原创 2020-07-15 13:46:17 · 886 阅读 · 0 评论 -
可以帮你搞定90%以上的面试题的一份MySQL书单
经过了10多年的发展,Java Web从开发框架到社区都已经非常成熟,很多程序员都可以通过使用框架很快速地搭建起一个Java Web应用,特别是近几年SpringBoot大热,干脆连配置都不需要了解了,直接一键式编译部署运行,让Java工程师的入门成本变得越来越低。但于此同时,互联网公司对于Java的应用场景也在不断地升级换代,从单机部署再到分布式,从SOA再到微服务,Java后端技术栈变得更加庞大,对于工程师的要求也越来越高,特别是对于大公司来说更是如此,Java Web工程师已经不复存在,而取而代之原创 2020-05-09 18:54:13 · 1260 阅读 · 0 评论 -
你知道吗?使用 MySQL 中InnoDB行锁需要避免这些坑?
一、InnoDB行锁的实现方式通过给索引上的索引项加锁来实现的,也就意味着:只有通过索引条件检索数据,InnoDB才使用行级锁,否则,InnoDB将使用表锁。这一点在实际应用中特别需要注意,不然的话可能导致大量的锁冲突,从而影响引发并发性能。实验一:对没有索引的加锁,导致表锁1)准备工作:建tab_no_index表,表中无任何索引,并插入数据2)Session_1: 我们给i...原创 2020-04-30 19:41:21 · 1548 阅读 · 0 评论 -
面试官:为什么选择B+树作为数据库索引结构?谈谈你的理解
背景首先,来谈谈B树。为什么要使用B树?我们需要明白以下两个事实:【事实1】不同容量的存储器,访问速度差异悬殊。以磁盘和内存为例,访问磁盘的时间大概是ms级的,访问内存的时间大概是ns级的。有个形象的比喻,若一次内存访问需要1秒,则一次外存访问需要1天。所以,现在的存储系统,都是分级组织的。最常用的数据尽可能放在更高层、更小的存储器中,只有在当前层找不到,才向更低层、更大的存储器中寻找。这也就解释了,当处理大规模数据的时候(指无法将数据一次性存入内存),算法的实际运行时间,往往取决于数据在不原创 2020-06-17 19:02:47 · 689 阅读 · 0 评论 -
深入浅出数据库事务和4种隔离级别
三种bug:脏读:例:insert into T values (4, '牛D');,然后没commit。其他进程SELECT读取到的数据是未commit的数据。(数据库只修改了内存没修改外存)不可重复读:例:一个事务范围内两个相同的查询却返回了不同数据(因为中间有进程修改了值并且提交成功)幻读:例:某个事务在读取某个范围的数据,但是另一个事务又向这个范围的数据去插入数据,导致多次读取的时候,数据的行数不一致。 READ UNCIMMITTED(未提交读) 在这原创 2020-05-30 15:20:03 · 802 阅读 · 0 评论 -
数据库允许空值(null),往往是悲剧的开始
数据库字段允许空值,会遇到一些问题,此处包含的一些知识点,和大家聊一聊。数据准备:create table user (id int,name varchar(20),index(id))engine=innodb;insert into user values(1,'shenjian');insert into user values(2,'zhan...原创 2020-05-06 22:05:32 · 950 阅读 · 0 评论 -
在数据库架构设计中,最重要的基本概要!
所有概念均以“用户中心”举例。画外音:这是一个提供用户注册、登录、信息查询与修改的常见业务。一、单库架构单库架构,是业务初期最常见的数据库架构。 user-service:用户中心服务,对调用者提供友好的RPC接口 user-db:一个库进行数据存储 二、分组架构数据库分组架构,即最常见的一主多从,主从同步,读写分离数据库架构: user-servi...原创 2020-04-29 22:06:41 · 1074 阅读 · 0 评论