[TL4]分布式框架专题-MySql
文章平均质量分 83
[TL4]分布式框架专题-MySql
萧 炎
这个作者很懒,什么都没留下…
展开
-
到底是在数据库(DB)中排序好,仍是在应用程序中排序更优
在网站开发中,到底是在数据库(DB)中排序好,仍是在应用程序中排序更优,这一直是个颇有趣的话题。DBANotes.net博主,在数据库方面比较有研究的冯大辉就这一问题日前和读者明灵(Dragon)作了探讨,本文是关于该问题的总结。 问:请列出在PHP中执行排序要优于在MySQL中排序的缘由? 答:一般来讲,执行效率须要考虑CPU、内存和硬盘等的负载状况,假定MySQL服务器和PHP的服务器都已经按照最适合的方式来配置,那么系统的可伸缩性(Scalability)和用户感知性能(User-perceived转载 2022-01-24 12:24:48 · 1049 阅读 · 0 评论 -
MySQL的常用高可用方案和分库分表概念
文章目录一、高可用方案1、MMM1、优点2、缺点3、适用场景2、MHA1、优点2、缺点3、MGR1、优点:2、缺点3、适用的业务场景二、分库分表1、分库分表有什么用2、分库分表的方式2.1 垂直分片2.2 水平分片2.3 常用的分片策略3、分库分表的缺点4、什么时候需要分库分表5、常见的分库分表组件5.1 shardingsphere5.2 mycat5.3 DBLE一、高可用方案我们之前的MySQL服务集群,都是使用MySQL自身的功能来搭建的集群。但是这样的集群,不具备高可用的功能。即如果是MyS原创 2021-09-14 21:33:15 · 896 阅读 · 0 评论 -
[干货满满] MySql(基于Docker容器构建)主从架构及读写分离实战、集群扩容、半同步复制集群、主从数据延迟问题解决方案
文章目录一、实验目的与环境1、 实验目的2、实验环境二、基础环境介绍三、搭建主从集群1、理论基础2、同步的原理3、搭建主从集群3.1 配置master主服务器3.2 配置slave从服务3.3 主从集群测试4、集群搭建扩展4.1 全库同步与部分同步4.2 测试部分同步4.2.1 验证数据库同步4.2.2 验证数据表同步5、读写分离配置5.1 读写分离总结6、其他集群方式7、GTID同步集群四、集群扩容五、半同步复制与半同步复制集群搭建1、理解半同步复制2、搭建半同步复制集群2.1 主服务上安装semis原创 2021-09-14 15:13:21 · 404 阅读 · 0 评论 -
CentOS7之Docker构建MySql8.0.20(解决1251-client does not support authentication protocol requested by ser)
文章目录一、构建mysql容器服务1、拉取镜像2、随便创建一个容器(目的只是为了拷贝挂载目录)3、启动成功后,进入容器内部拷贝配置文件,到宿主主机4、删除mysql容器,重新创建容器5、 重新创建mysql容器 ,挂载配置文件,数据持久化到宿主主机6、进入容器登录MySql服务7、远程Navicat连接测试8、开启远程登录9、修改用户密码二、修改配置文件,测试目录挂载1、修改宿主机上的配置2、重启容器一、构建mysql容器服务1、拉取镜像docker pull mysql:8.0.202、随便创建原创 2021-09-13 23:18:27 · 209 阅读 · 0 评论 -
[转]MySQL锁机制,行锁竟然加在索引上!!!
原文作者qq_40174198原文连接:MySQL锁机制,行锁竟然加在索引上!- https://blog.csdn.net/qq_40174198/article/details/111835482#comments_16752317锁概述锁是计算机协调多个进程或线程并发访问某一资源的机制,应该都不陌生。但在这之前我们先来看看并发控制,理清MVCC多版本并发控制和锁的关系,这也是之前我很迷惑的一个点。并发控制技术在数据库中,数据可以允许多个用户同时访问,因此在并发场景下需要确保数据的一.转载 2021-06-02 09:01:32 · 2187 阅读 · 0 评论 -
深入理解MVCC与BufferPool缓存机制
一、MVCC多版本并发控制机制MySql在可重复读隔离级别下如何保证事务较高的隔离性,我们上篇文章中提到过,同样的sql查询语句在一个事务里多次执行查询结果相同,就算其它事务对数据有修改也不会影响当前事务sql语句的查询结果。这个隔离性就是靠MVCC(Multi-Version Concurrency Control)机制来保证的,对一行数据的读和写两个操作默认是不会通过加锁互斥来保证隔离性,避免了频繁加锁互斥,而在串行化隔离级别为了保证较高的隔离性是通过将所有操作加锁互斥来实现的。Mysql在读已提原创 2021-05-23 23:16:39 · 421 阅读 · 4 评论 -
深入理解MySql事务隔离级别与锁事务
概述我们的数据库一般都会并发执行多个事务,多个事务可能会并发的对相同的一批数据进行增删改查操作,可能就会导致我们说的脏写、脏读、不可重复读、幻读这些问题。这些问题的本质都是数据库的多事务并发问题,为了解决多事务并发问题,数据库设计了事务隔离机制、锁机制、MVCC多版本并发控制隔离机制,用一整套机制来解决多事务并发问题。接下来,我们会深入讲解这些机制,让大家彻底理解数据库内部的执行原理。一、事务及其ACID属性事务是由一组SQL语句组成的逻辑处理单元,事务具有以下4个属性,通常简称为事务的ACID属性原创 2021-05-23 18:21:35 · 216 阅读 · 0 评论 -
MySQL升级到5.7.16 遇到的第一个问题“[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and“
升级之后马上体验了一下,执行“UPDATE user_course SET userid = 200 WHERE id = 28;”,结果报[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column ‘information_schema.PROFILING.SEQ’ which is not functionally dependent on colum转载 2021-05-23 09:30:58 · 189 阅读 · 0 评论 -
MySQL索引实战二: 深度分页优化、join连接查询优化、in和exists优化、count(*)查询优化、阿里MySQL规范解读
一、分页查询优化很多时候我们业务系统实现分页功能可能会用如下sql实现:select * from employees limit 10000,10;表示从表 employees 中取出从 10001 行开始的 10 行记录。看似只查询了 10 条记录,实际这条 SQL 是先读取 10010条记录,然后抛弃前 10000 条记录,然后读到后面 10 条想要的数据。因此要查询一张大表比较靠后的数据,执行效率是非常低的。这是典型的深度分页问题。分页场景优化技巧1、根据自增且连续的主键排序的分页查询原创 2021-05-22 22:52:10 · 3168 阅读 · 3 评论 -
MySQL索引优化实战(一)常用优化、Trace工具SQL执行分析、陌陌App索引创建实战
示例表:CREATE TABLE `employees` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(24) NOT NULL DEFAULT '' COMMENT '姓名', `age` int(11) NOT NULL DEFAULT '0' COMMENT '年龄', `position` varchar(20) NOT NULL DEFAULT '' COMMENT '职位', `hire_time` timestamp原创 2021-05-22 16:26:43 · 385 阅读 · 1 评论 -
SQL底层执行原理详解
我们平时都是使用sql语句去查询数据,都是很直接的看到结果。那么对于sql底层执行的过程大家有了解吗?一、MySQL的内部组件结构大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。Server层主要包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。Store层MySQL的存储引擎采用的是插拔式的,我们可以自己扩充或者选原创 2021-05-19 20:45:48 · 3404 阅读 · 0 评论 -
Explain详解与索引最佳实战
一、Explain工具介绍使用EXPLAIN关键字可以模拟优化器执行SQL语句,分析你的查询语句或是结构的性能瓶颈在 select 语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,执行查询会返回执行计划的信息,而不是执行这条SQL注意:如果 from 中包含子查询,仍会执行该子查询,将结果放入临时表中二、Explain分析示例DROP TABLE IF EXISTS `actor`;CREATE TABLE `actor` ( `id` int(11) NOT NU原创 2021-05-18 09:26:33 · 754 阅读 · 0 评论 -
深入理解MySql索引底层数据结构与算法
一、索引本质1、索引的本质select * from t where col2 = 89我们插入到数据表中的数据,有可能分布存储在磁盘不同的空间中,而我们的数据库查询的时候每次都要进行磁盘IO。当我们不加索引的时候,此时查询就是全表扫描,即一行一行的比对数据,多次进行磁盘IO,直到查询到我们所需的数据。而我们所能想到的优化,自然是减少磁盘IO。而减少磁盘IO,我们自然是要减少数据比对的次数,即我们要在尽可能少的比对次数中,查询出我们需要的数据。所以,我们可以考虑,能不能使用一中数据结构来存储数原创 2021-05-16 18:26:51 · 364 阅读 · 1 评论