Mysql/Sql
文章平均质量分 64
Super乐
闭上自己的嘴,抬起自己的腿,走自己的人生路。
展开
-
面试必备:分库分表经典15连问
前言大家好,我是田螺。我们去面试的时候,几乎都会被问到分库分表。田螺哥整理了分库分表的15道经典分库分表面试题,大家看完肯定会有帮助的。原创 2023-07-28 12:43:05 · 1167 阅读 · 2 评论 -
MySQL基础知识
1、MySQL的复制原理以及流程基本原理流程,3个线程以及之间的关联;1. 主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中;2. 从:io线程——在使用start slave 之后,负责从master上拉取 binlog 内容,放进 自己的relay log中;3. 从:sql执行线程——执行relay log中的语句;详解:mysql主从复制MySQL数据库自身提供的主从复制功能可以方便的实现数据的多处自动备份,实现数据库的拓展。多个数原创 2020-10-22 09:33:22 · 736 阅读 · 1 评论 -
MySQL 分区(innode引擎的讲解)
MySQL 分区(innode引擎的讲解)原创 2023-01-05 14:31:22 · 316 阅读 · 0 评论 -
MySQL:SQL查看表占用空间
MySQL:SQL查看表占用空间原创 2022-12-30 11:48:53 · 308 阅读 · 0 评论 -
mysql分区之RANGE类型
mysql分区之RANGE类型分区实际操作原创 2022-12-28 17:08:34 · 2188 阅读 · 0 评论 -
MySQL主从配置-之GTID复制【第二篇】
MySQL主从配置之GTID复制原创 2022-09-21 16:56:11 · 1337 阅读 · 0 评论 -
windows中MySQL主从配置【第一篇】
windows中MySQL主从配置详细教程原创 2022-09-21 10:54:34 · 2901 阅读 · 0 评论 -
mysql: [ERROR] unknown variable ‘sql_mode=STRICT_TRANS_TABLES
mysql: [ERROR] unknown variable 'sql_mode=STRICT_TRANS_TABLES原创 2022-09-19 11:28:19 · 3409 阅读 · 0 评论 -
MySQL加索引语句不加锁:ALGORITHM=INPLACE, LOCK=NONE
MySQL加索引语句不加锁:ALGORITHM=INPLACE, LOCK=NONE原创 2022-08-03 17:15:56 · 942 阅读 · 0 评论 -
解决Navicat远程连接mysql很慢的方法
第一步:找到Linux服务器MySQL配置文件的位置 一般使用命令:whereis mysql第二步:找到 my.cnf (文件名不定,自编译或者后续自己改过名字,文件名就不是my.cnf)配置文件以后,vim 打开配置文件。第三步:在配置文件中加上,下面这个配置项skip-name-resolve如图:注意:配置项,要配置到 [mysqld] 的下面第四步:重启MySQL即可 ubuntu系统是:service mysql restart...原创 2022-02-09 10:45:55 · 1850 阅读 · 2 评论 -
MySQL试题
1. 简述在MySQL数据库中引擎MyISAM和InnoDB的区别?存储结构方面:MyISAM每个MyISAM在磁盘上存储成三个文件.frm文件存储表定义、数据文件的扩展名为.MYD、索引文件的扩展名是.MYI;InnoDB所有的表都保存在同一个数据文件中,表的大小只受限于操作系统文件的大小,一般为2GB。 存储空间方面:MyISAM可被压缩,存储空间较小。支持三种不同的存储格式:静态表、动态表、压缩表;InnoDB需要更多的内存和存储,它会在主内存中建立其专用的缓冲池用于高速缓冲数据和索引。 事务原创 2021-11-02 14:49:38 · 266 阅读 · 0 评论 -
Linux MySQL连接数的查看和调整
1、当前mysql数据库可以打开的文件数目,打开一个表的动作就是打开一个文件,当然和连接数也有关系,总结:只要有文件读写都算一次的。 SQL语句:show variables like '%open%';2、最大连接数,也就是目前数据库所允许的最多的连接数。SQL语句:show variables like '%max_connections%';3、实时的数据库现在的有效连接数。SQL语句:show status like '%Threads_connected%';..原创 2021-08-03 13:45:41 · 3125 阅读 · 0 评论 -
MySQL查看SQL查询是否用到了索引?
执行自己想要查看的SQL语句,如下:1. 解释Explain得到的结果1.1 type 反应查询语句的性能我们主需要注意一个最重要的的 type 的信息很明显地体现出是否用到了索引:type 结果值从好到坏依次是:system > const> eq_ref> ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range .原创 2021-07-22 10:13:11 · 4556 阅读 · 0 评论 -
MySQL之rank() over(order by)
一、准备工作创建一个表palyers:CREATE TABLE `players` ( `pid` int(2) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `age` int(2) NOT NULL, PRIMARY KEY (`pid`), UNIQUE KEY `name` (`name`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;INSERT INTO `play原创 2021-04-01 19:04:08 · 4946 阅读 · 0 评论 -
MySQL 列拆分多行
第一步:创建一张地方表,并插入数据-- ------------------------------ Table structure for place-- ----------------------------DROP TABLE IF EXISTS `place`;CREATE TABLE `place` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `country` char(50) NOT NULL, `city原创 2021-02-07 17:26:00 · 729 阅读 · 0 评论 -
Linux-centos7配置MySQL主从
1、首先准备两台虚拟机2、查看MySQL的版本号,这里多说几种方式。[root@localhost /]# mysql --help | grep Distribmysql Ver 14.14 Distrib 5.7.30, for Linux (x86_64) using EditLine wrapper方式二:方式三: 主库的配置 修改 my.cnf配置文件,添加如下内容#主从复制配置#设置主服务 的ID (id可以自己随便设置但是要保证和slav原创 2020-08-26 13:54:53 · 600 阅读 · 0 评论 -
centos7忘记MySQL密码
1、错误提示如下:[root@localhost ~]# mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)2、查看一下mysql的进程,是否处于启动状态[root@localhost ~]# ps -ef | grep -i mysqlmysql 1983 1 0 10:24 ?原创 2020-08-26 10:50:46 · 256 阅读 · 0 评论 -
mysql分表的使用
实际业务中,我们遇到数据量大(百万级以上)的时候,表的大小太大了,影响到查询的时候,就需要做水平分表的操作了。今天就拿用户表作为例子。首先总结一下:Mysql通过Merge引擎进行分表使用场景数据表记录很大,单表记录会超过500W,比如用户表、订单表、产品表等。注意分表的id不能是自增(auto increment)的;分表必须使用MyISAM存储引擎;每个分表的表结构必须相同;MySQL必须具有存储分表数据文件和索引文件的目录的读写权限;必须启用MySQL的符号链接支持功能。原创 2020-08-25 17:35:15 · 421 阅读 · 0 评论 -
MySQL底层原理综合描述
1、概念1.1 数据库事务:简单的说事务就是一组原子性的SQL语句。可以将这组语句理解成一个工作单元,要么全部执行要么都不执行。默认MySQL中自动提交时开启的(start transaction)事务的ACID特性如下:原子性:事务中的所有操作要么全部提交成功,要么全部失败回滚。场景:UPDATE cs_user SET age = 18 , gender = '女' WHERE id = 4。要么全部更新要么更新失败,不会出现age更新成功,gender更新失败。一致性:据库总是从给一个一致原创 2020-05-25 13:51:36 · 253 阅读 · 0 评论 -
MySQL索引底层原理分析
大家都知道索引的重要性,基本用法在上章《最全面的mysql索引知识大盘点》已分享过,本章主要是探索索引的底层实现原理。当然了,我们还是以mysql为基准进行探讨。目录前言:innodb和myisam的区别1.物理磁盘知识1.1基本概念1.2硬盘中的数据1.3磁盘的读写原理1.5磁盘的读取响应时间1.6 I/O 的预读与局部性原理2.推理并拆解普通查询语句3.为什么要用B+Tree实现3.1 B-Tree3.2 B+Tree3.3B-树和B+树的区别3.原创 2020-05-25 13:48:57 · 219 阅读 · 0 评论 -
MySQL底层架构原理,工作流程和存储引擎的数据结构讲解
数据库(DataBase)是存放用户数据的地方,当用户访问、操作数据库中的数据时,需要数据库管理系统的帮助。数据管理系统的全称是DataBase Management System,简称DBMS。通常情况下我们会把数据库和数据库管理系统笼统的称为数据库,通常所说的数据库既包括存储用户数据的部分,也包括管理数据库的管理系统。 MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。在 WEB 应用方面,MySQL是最...原创 2020-05-25 13:44:53 · 407 阅读 · 0 评论 -
MySQL高级知识(十一)——数据库事务
1. 事务的原则介绍2. 事务并发会造成的问题3. MySQL的事务隔离级别事务的原则1、原子性:在事务中的操作,必须同时完成或者同时回滚,不会只成功或者回滚一部分。2、一致性:不能破坏数据库的一致性状态。3、隔离性:不同的事务之前互相不能影响。4、持久性:事务完成以后,即保存数据,不会再回滚。事务并发造成的问题1、脏读事务A读取了事务B更新的数据...原创 2019-05-06 18:11:21 · 288 阅读 · 0 评论 -
mysql(3)—— 内连接、外连接的区别
先来看一下,内连接的语法:SELECT XXX FROM XXX INNER JOIN XXX ON XXX;这里 INNER 可以省略,在上一篇博客中我们对于笛卡尔积现象的研究中(https://blog.csdn.net/wplblog/article/details/86686263)用到的就是内连接,但这并不能说明笛卡尔积算法只是适用于内连接,笛卡尔积算法针对的是表之间数据行的匹...转载 2019-01-29 10:31:10 · 448 阅读 · 0 评论 -
mysql(2)—— 由笛卡尔积现象分析数据库表的连接
首先,先简单解释一下笛卡尔积。现在,我们有两个集合A和B。A = {0,1} B = {2,3,4}集合 A×B 和 B×A的结果集就可以分别表示为以下这种形式:A×B = {(0,2),(1,2),(0,3),(1,3),(0,4),(1,4)};B×A = {(2,0),(2,1),(3,0),(3,1),(4,0),(4,1)};以上A×B和B×A的结果就可以...转载 2019-01-29 10:26:10 · 693 阅读 · 0 评论 -
mysql(1)—— 详解一条sql语句的执行过程
SQL是一套标准,全称结构化查询语言,是用来完成和数据库之间的通信的编程语言,SQL语言是脚本语言,直接运行在数据库上。同时,SQL语句与数据在数据库上的存储方式无关,只是不同的数据库对于同一条SQL语句的底层实现不同罢了,但结果相同。这有点类似于java中接口的作用,一个接口可以有不同的实现类,不同的实现类对于接口中方法的实现方式可以不同,结果可以相同。这里SQL语言的作用就类似于java中的接...转载 2019-01-29 10:16:52 · 950 阅读 · 0 评论 -
四种mysql存储引擎
数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以 获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySql的核心就是存储引擎。存储引擎查看MySQL给开发者提供了查询存储引擎的功能,我这里使用的是MySQL5.1,可翻译 2017-11-01 19:28:02 · 366 阅读 · 0 评论 -
MySQL事务特性及隔离级别
本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别。 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。⑵ 一原创 2017-09-11 19:35:41 · 392 阅读 · 0 评论 -
MySQL 常用命令详解
Mysql安装目录数据库目录/var/lib/mysql/配置文件/usr/share/mysql(mysql.server命令及配置文件)相关命令/usr/bin(mysqladmin mysqldump等命令)启动脚本/etc/init.d/mysql(启动脚本文件mysql的目录)系统管理连接MySQL格式: mysql -h 主机地址 -u用户名 -p用户密码例原创 2016-08-17 21:58:28 · 608 阅读 · 0 评论 -
Windows10 Mysql主从配置
一、安装Mysql 1.本地首先需要搭建一套mysql,可以使用集成环境。 2.需要单独在搭建mysql,用来做主从复制 3.解压安装包 [mysql-5.6.24-win32.1432006610.zip] 4.配置 mysql环境变量 ( 修改PATH,添加 D:\MysqlServer5.6\bin ) 5. D:\MysqlServer5.6 目录原创 2016-08-16 21:05:16 · 1768 阅读 · 0 评论 -
MySQL 数据库性能优化之SQL优化
优化目标减少 IO 次数IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO 次数是 SQL 优化中需要第一优先考虑,当然,也是收效最明显的优化手段。降低 CPU 计算除了 IO 瓶颈之外,SQL优化中需要考虑的就是 CPU 运算量的优化了。order by, group by,distinct … 都是消耗原创 2016-07-18 08:13:17 · 695 阅读 · 0 评论 -
mysql(4)—— 表连接查询与where后使用子查询的性能分析。
子查询就是在一条查询语句中还有其它的查询语句,主查询得到的结果依赖于子查询的结果。子查询的子语句可以在一条sql语句的FROM,JOIN,和WHERE后面,本文主要针对在WHERE后面使用子查询与表连接查询的性能做出一点分析。对于表连接查询和子查询性能的讨论众说纷纭,普遍认为的是表连接查询的性能要高于子查询。本文将从实验的角度,对这两种查询的性能做出验证,并就实验结果分析两种查询手段的执行...转载 2019-01-29 10:38:29 · 1158 阅读 · 1 评论 -
MySQL高级知识(八)——ORDER BY优化
drop table if exists test;create table test(id int primary key auto_increment,c1 varchar(10),c2 varchar(10),c3 varchar(10),c4 varchar(10),c5 varchar(10)) ENGINE=INNODB default CHARSET=utf8;...原创 2019-03-13 15:09:14 · 255 阅读 · 0 评论 -
MySQL高级知识(一)——基础
前言:MySQL高级知识主要来自尚硅谷中MySQL的视频资源。对于网上视频资源来说,尚硅谷是一个非常好的选择。通过对相应部分的学习,笔者可以说收益颇丰,非常感谢尚硅谷。1.关于MySQL的一些文件MySQL如何安装、如何配置自启动,这里不进行讲述,可自行搜索相关安装教程进行处理。这里主要介绍MySQL的主要配置文件。①二进制日志log-bin:用于主从复制。②错误日志log-err...原创 2019-03-13 15:12:52 · 395 阅读 · 0 评论 -
MySQL高级知识(十)——批量插入数据脚本
前言:使用脚本进行大数据量的批量插入,对特定情况下测试数据集的建立非常有用。0.准备#1.创建tb_dept_bigdata(部门表)。create table tb_dept_bigdata(id int unsigned primary key auto_increment,deptno mediumint unsigned not null default 0,dname...转载 2019-03-13 15:55:54 · 296 阅读 · 0 评论 -
MySQL高级知识(九)——慢查询日志
前言:慢查询日志是MySQL提供的一种日志记录,它记录MySQL中响应时间超过阈值的语句,具体指运行时间超过long_query_time值的sql语句,该sql语句会被记录到慢查询日志中。慢查询日志主要与explain进行联合分析。1.如何开启慢查询日志默认情况下,MySQL数据库没有开启慢查询日志,需要我们手动来设置这个参数。如果不是调优需要,一般不建议开启该参数,因为开启慢查询日志或...转载 2019-03-13 15:55:18 · 275 阅读 · 0 评论 -
MySQL高级知识(七)——索引面试题分析
前言:该篇随笔通过一些案例,对索引相关的面试题进行分析。0.准备#1.创建test表(测试表)。drop table if exists test;create table test(id int primary key auto_increment,c1 varchar(10),c2 varchar(10),c3 varchar(10),c4 varchar(10)...转载 2019-03-13 15:53:49 · 358 阅读 · 0 评论 -
MySQL高级知识(五)——索引分析
前言:前面已经学习了explain(执行计划)的相关知识,这里利用explain对索引进行优化分析。0.准备首先创建三张表:tb_emp(职工表)、tb_dept(部门表)和tb_desc(描述表)1)tb_emp表。DROP TABLE IF EXISTS `tb_emp`;CREATE TABLE `tb_emp` ( `id` int(11) NOT NULL A...转载 2019-03-13 15:52:19 · 122 阅读 · 0 评论 -
MySQL高级知识(六)——索引优化
前言:索引优化的目的主要是让索引不失效,本篇通过相关案例对索引优化进行讲解。0.准备创建经典的tb_emp表。DROP TABLE IF EXISTS `tb_emp`;CREATE TABLE `tb_emp` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, `age` in...转载 2019-03-13 15:53:06 · 336 阅读 · 0 评论 -
MySQL高级知识(四)——Explain
前言:explain(执行计划),使用explain关键字可以模拟优化器执行sql查询语句,从而知道MySQL是如何处理sql语句。explain主要用于分析查询语句或表结构的性能瓶颈。注:本系列随笔如无特殊说明都MySQL版本都为5.7.22。1.explain的作用通过explain+sql语句可以知道如下内容:①表的读取顺序。(对应id)②数据读取操作的操作类型。(对应s...转载 2019-03-13 15:16:47 · 144 阅读 · 0 评论 -
MySQL高级知识(三)——索引
前言:索引在sql调优部分占据着重要的位置,了解并深入索引对我们来说也是非常重要的。本篇主要介绍MySQL中索引的相关知识点。1.索引是什么MySQL官方对索引的定义:索引(Index)是帮助MySQL高效获取数据的数据结构。因此索引的本质就是数据结构。索引的目的在于提高查询效率,可类比字典、书籍的目录等这种形式。可简单理解为“排好序的快速查找数据结构”。在数据之外,数据库系统还维护着...转载 2019-03-13 15:15:21 · 111 阅读 · 0 评论