
MySQL专题
文章平均质量分 59
本专题由博主学习高性能MySQL所写,如果觉得不错,请点个三连!
程序员劝退师-TAO
没事敲两行代码
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
事务隔离级别
前言为什么会有事务的隔离级别,是在多个事务并发的时候会产生以下问题,如脏读、不可从复读、幻读脏读现在有事务1和事务2两个,事务2先开始执行,将金额改为800,还未提交,然后事务1进来查询,那么此时查询到的金额就是800,这时事务2开始回滚,那么此时事务1读取到的数据就是未提交的数据,也就是800这个脏数据。一个事务读取到另一个事务中没有提交的数据,就会在本事务中产生数据不一致的问题,解决方式就是将事务隔离级别设置为读已提交即可!那么未提交的数据就无法获取到!不可从复读事务1和事务2,事务1中原创 2022-08-09 20:25:41 · 170 阅读 · 0 评论 -
MySQL使用索引排序
前言过去我们只知道使用ORDER BY来做排序,那么本章将来介绍MySQL使用索引进行排序,MySQL实现排序共有两种手段,第一种就是通过排序操作,第二种就是通过索引来排序。(关于查询语句中有没有使用带索引排序我们可以通过EXPLAIN执行计划得到type列的值为index,则说明使用到了索引来排序)支持MySQL可以使用同一个索引满足排序(ORDER BY)和查询(WHERE)操作,因此如果可以,设计索引的时候尽可能考虑同时满足两种任务可能更慢扫描索引本身就很快,因为只需要从一条索引记录移动到紧原创 2021-09-03 01:17:06 · 6485 阅读 · 3 评论 -
高新能MySQL闲杂笔记
https://blog.youkuaiyun.com/welongfor/article/details/86622790原创 2021-09-03 00:38:50 · 148 阅读 · 0 评论 -
MySQL高新能索引
前言本文主要讲解什么是索引、索引的分类索引面试相关数据库中最常见的慢查询优化方式为什么加索引会优化慢SQL那些数据结构可以提高查询速度MySQL为什么使用B+树原创 2021-08-22 00:00:28 · 178 阅读 · 0 评论 -
MySQL前缀索引优化
前言有时候我们给VARCHAR类型的字段加索引的时候,由于VARCHAR存储的字符比较长,这会让索引变的大且慢,那么我们可以优化索引开始的部分字符,这样可以大大节约索引空间,从而提高索引效率,但是这也会降低索引的选择性,所谓选择性是指,不重复的索引值,(也称为基数)和数据表的记录总数的比值,索引选择性越高,则查询效率越高,因为选择性的索引可以让MySQL在查找时过滤掉更多的行,唯一索引的选择性是1,这也是最好的索引选择性,性能也是最好的。对于BLOB,TEXT或者很长的VARCHAR类型的列,必须使用前缀原创 2021-08-21 23:43:26 · 583 阅读 · 0 评论 -
MySQL为什么使用B+树
前言本文是承接MySQL高新能索引这篇文章的部分内容,单独抽离出来分析MySQL为什么使用B+树,在上文中有提到索引有hash、二叉树、B树(B-树),B+树,而MySQL使用的是B+树,本文就对应这个进行分析!Hash索引Hash索引其实就是依赖于Hash表的关于Hash这块详细的可以查看往期文章HashMap底层数据结构(数组+链表+红黑树),这里还是讲解下Hash索引,如下首先Hash表是一组连续的数组,对要存入的值进行hash取值然后%上Hash的长度,那么得到的余数就对应着Hash表的原创 2021-08-21 21:10:40 · 1945 阅读 · 0 评论 -
MySQL数据文件
前言MySQL其实简单理解就是存储和提取数据的一个程序罢了,那么这些数据就是通过存储引擎存储到磁盘的,关于这部分前置知识可以查看往期文章MySQL逻辑架构,存储在磁盘上也就是文件,如我们在MySQL上创建一个数据库那么就会在MySQL的data目录下产生相对于的文件如下InnoDB存储引擎后缀为idb格式的是InnoDB存储引擎实现的MyISAM存储引擎MYD是数据文件MYI是索引文件对比InnoDB数据和索引是存储在一起的,MyISAM是数据和索引相互分开存储的...原创 2021-08-21 19:56:18 · 221 阅读 · 0 评论 -
MySQL逻辑架构
前言做程序开发也有些年头了,刚入行的由于公司业务需要玩过两年技术,各种技术都多少玩过,最近这段时间,着重的是业务方向的开发,技术也不能落下,MySQL用了这么几年,都差点忘了本了,那么这里就从MySQL的架构开始!第一层最上层的服务并不是MySQL特有的,大多数基于网络的客户端/服务器的工具或者服务都有类似的架构,比如连接处理,授权认证,安全等第二层第二层架构是MySQL比较有意思的部分,大多数MySQL的核心服务功能都在这一层,包括查询解析,分析,优化,缓存,以及所有的内置函数(日期、时间、数原创 2021-08-21 17:50:55 · 166 阅读 · 0 评论 -
MySQL范式和反范式
前言在讲范式和反范式之前,首先先搞清楚什么是范式!如下第一范式每个表的每一列都要保持它的 原子性 也就是表的每一列都是不可分割的修改后第二范式要在满足第一范式的基础上,每个表都要保持 唯一性 也就是表的非主键字段要完全依赖主键字段。第三范式要在满足第一和第二范式的基础上,表中不能产生传递依赖,要消除表中的冗余性范式范式优点范式化的更新操作通常比反范式操作要快当数据较好的范式化时,就只有很少或者没有重复数据所以只需要修改更少的数据范式化的表通常很小,可以更好的放在内存原创 2021-08-18 23:43:41 · 510 阅读 · 0 评论 -
MySQL数据类型优化
前言本文主要讲述MySQL中一些数据类型的优化点!如整数类型、实数类型、字符串类型、日期和时间等…MySQL支持的数据类型非常多,对数据类型进行优化也是提高MySQL性能的一种重要手段,在考虑如何优化数据类型时先考虑如下几个原则1.更小通常更好一般情况下,在正确使用且合理的使用数据类型时,应该尽量使用最小数据类型(如整型,最小的类型为TINYINT,但是我们通常会使用INT,如果存储的值范围只在0-100,那么我们完全可以使用TINYINT作为最小存储类型),通常更小数据类型通常更快,因为占用的磁盘、原创 2021-08-18 00:37:33 · 335 阅读 · 0 评论 -
MySQL排序字段一致时,返回结果顺序不一样!
前言这个问题的话不仔细看容易产生误区,在我们对MySQL常识性认识的前提下,我们肯定认为SQL一样时,返回的结果一定是一样的,当然我曾经也是这么认为的,注意这里说的SQL一样时指SQL的字符串一模一样,一个空格不多一个空格不少! 这里先说一下结论,当SQL一毛一样的时候,排序字段一致时,返回的结果顺序不一定一样,这个问题的产生是在我重构公司系统的权限时产生的,由于业务比较复杂,而且业务线跨度比较大,在对SQL数据处理的时候分外注意,在SQL更改前后做数据对比的时候,发现返回的数据结果集不一致,当时以为是重原创 2021-08-01 21:59:10 · 4813 阅读 · 1 评论 -
MySql整合Shardingsphere分库分表
前言前面一篇文章将MySql主从复制模式就搭建完毕了,但是在主从复制模式情况下不能解决单表数据量大了的性能问题,如一张表书记量太大了,查询效率会比较低,那么此时就需要对数据进行分片处理,每个MySql就只存储部分数据,接下来就是MySql分库分表!MySql分库分表会采用MyCat或者ShardingSphere!以上内容均来自shardingsphere官方文档Sharding-Proxy分库分表,读写分离下面根据上面这张架构图使用Sharding-Proxy实现分库分表,原创 2020-09-03 23:28:11 · 935 阅读 · 0 评论 -
MySql集群搭建
MySql集群原理MySQL-MMM(mysql主主复制管理器) 的简称,是Google的开源项目(Perl脚本) .MMM基于MSQLReplication做的扩展架构,主要用来监控mysa!主主复制并做失败转移。其原理是将真实数据库节点的IP (RIP) 映射为處拟IP (VIP)集。mysal-mmm的监管端会提供多个虚拟IP(VIP),包括一个可写VIP,多个可读VIP,通过监管的管理,这些IP会绑定在可用mysql之上,当某一台mysq!启机时,监管会将VIP迁移至其他mysal。在整个监管过程原创 2020-09-03 18:15:31 · 636 阅读 · 1 评论 -
MySql常用SQL
SELECT DATE_FORMAT( create_time, ‘%Y-%m-%d %H:%i:%s’ ) create_time FROM live_gift_list原创 2021-01-04 11:03:03 · 256 阅读 · 0 评论