Mysql
文章平均质量分 66
蹲在角落数蚂蚁
蹲在角落数蚂蚁为大家默默更新新文章
展开
-
MySQL获取并解决当前阻塞
一、概述阻塞通常由于多个线程要对同一个资源加排它锁造成的。第一个线程对某资源加了排它锁,其他线程再想对该资源加排它锁,就只能等上一个进程执行结束释放锁之后才能加排它锁,这也就导致后面的线程会一直等待,进而造成阻塞。现实中举例就是一条道路上,前车停了,后面的车也不能继续动了。 二、获取阻塞1、如果MySQL版本 <= 5.7SELECT b.trx_mysql_thread_id as '被阻塞线程', b.trx_query as '被阻塞SQL',原创 2022-02-11 16:47:49 · 1692 阅读 · 0 评论 -
MySQL 主从复制的原理、如何实现、常见问题及解决方案
一、环境介绍LNMP(centos7,mysql5.6)vmware workstation pro配置了3个虚拟机,均安装了LNMP环境:master: 192.168.0.105slave: 192.168.0.106、192.168.0.107主从复制架构部署的原则:1、不要有太多的备库(同步binlog也是需要消耗性能的)2、一个备库实例只能有一个主库3、每一个集群库,都必须有一个唯一的服务ID(server-id) 二、原理(1)主数据库进行增...原创 2022-02-10 18:19:32 · 455 阅读 · 0 评论 -
MySQL CAP定理及使用场景
1、什么是CAP定理CAP定理,也称CAP原则,是一个衡量系统设计的准则。指在一个分布式系统中,一致性(consistency)、可用性(availability)、分区容错性(partition tolerance)三者不可兼得,最多只可得其二。2、三个特性的具体含义一致性(C):所有节点在同一时间的数完全一致可用性(A):服务一直可用,每个请求都能接收到一个响应,无论响应成功或失败分区容错性(P):分布式系统在遇到某节点或网络分区障碍的时候,仍然能够对外提供满足一致性和可用性的服务。原创 2022-02-10 17:40:26 · 2494 阅读 · 0 评论 -
MySQL 触发器篇
一、概述Mysql 允许通过触发器、存储过程、函数的形式来存储代码。触发器可以让你在执行 Insert、Update、Delete的时候,执行一些特定的操作。可以在Mysql中指定是在Sql语句执行之前触发还是执行后触发。二、使用触发器需要注意的点对每一个表的每一个事件,最多只能定义一个触发器(换句话说,不能在AFTER INSERT上定义两个触发器)。Mysql只支持“基于行的触发”,也就是说,触发器始终是针对一条记录的,而不是针对整个SQL语句的。所以,如果变更的数据集非常大,效率将原创 2022-02-10 17:33:35 · 734 阅读 · 0 评论 -
MySQL 视图篇
一、概述 Mysql 5.0 版本后开始引入视图。视图本身是一个虚拟表,不存放任何数据。在使用 sql 语句访问视图的时候,他返回的数据都是在查询过程中从其他表动态生成的。二、使用视图1、创建视图CREATE VIEW comic_view as SELECT comic_id,name,pen_name from comic;2、创建之后,我们就可以像使用正常数据表一样使用视图。SELECT comic_id,name,pen_name from comic_view limit原创 2022-02-09 18:58:52 · 279 阅读 · 0 评论 -
mysql 存储过程
一、概述 存储过程可以理解为一段 SQL 语句的集合(相当于 PHP 中的一个函数方法,去实现业务逻辑),它们被事先编译好并且存储在数据库中。 调用存储过程与直接执行 SQL 语句的效果是相同的,但是存储过程的一个好处是处理逻辑都封装在数据库端。 当我们调用存储过程的时候,我们不需要了解其中的处理逻辑,一旦处理逻辑发生变化,只需要修改存储过程即可,对调用它的程 序完全无影响。 调用存储过程和函数可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,减少了和脚本语言的原创 2022-02-09 18:56:41 · 198 阅读 · 0 评论 -
MySQL 锁篇
1、什么是锁?MySQL 中提供了几类锁?锁是实现数据库并发控制的重要手段,可以保证数据库在多人同时操作时能够正常运行。MySQL 提供了全局锁、行级锁、表级锁。其中 InnoDB 支持表级锁和行级锁,MyISAM 只支持表级锁。 2、什么是死锁?死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁。 3、如何处理死锁?(1)通过 innodblockwait_timeout原创 2022-02-09 18:32:36 · 265 阅读 · 0 评论 -
MySQL 索引篇
1、什么是索引?索引是一种能帮助 MySQL 提高查询效率的数据结构。 2、索引分别有哪些优点和缺点?优点:(1)快速访问数据表中的特定信息,提高检索速度。(2)创建唯一性索引,保证数据表中每一行数据的唯一性。(3)加速表与表之间的连接。(4)使用分组和排序进行数据检索时,可以显著减少查询中分组和排序的时间。缺点:(1)虽然提高了的查询速度,但却降低了更新表的速度(2)建立索引会占用磁盘文件的索引文件。 3、以下 SQL 有什么问题?该如何...原创 2022-02-09 18:21:29 · 1744 阅读 · 0 评论 -
mysql 进阶篇
1、说一下 MySQL 执行一条查询语句的内部执行过程?客户端先通过连接器连接到 MySQL 服务器。 连接器权限验证通过之后,先查询是否有查询缓存,如果有缓存(之前执行过此语句)则直接返回缓存数据,如果没有缓存则进入分析器。 分析器会对查询语句进行语法分析和词法分析,判断 SQL 语法是否正确,如果查询语法错误会直接返回给客户端错误信息,如果语法正确则进入优化器。 优化器是对查询语句进行优化处理,例如一个表里面有多个索引,优化器会判别哪个索引性能更好。 优化器执行完就进入执行器,执行器就开始执原创 2022-02-08 18:04:29 · 2379 阅读 · 0 评论 -
mysql8.0新特性
1、默认字符集由latin1变为utf8mb4在5.6、5.7版本中,默认字符集均为latin1,在8.0版本中,默认字符集已经变为utf8mb42、系统表不再使用MyISAM和MEMORY执行select distinct(ENGINE) from information_schema.tables;获取当前系统表使用到的存储引擎。在5.6、5.7版本中查询结果为:MEMORY、InnoDB、MyISAM、CSV、PERFORMANCE_SCHEMA在8.0版本中查询结果为:InnoD原创 2022-02-08 17:08:39 · 2270 阅读 · 0 评论 -
Mysql索引类型及相关操作
一、索引MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。索引分单列索引和组合索引单列索引:即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引:即一个索引包含多个列。创建索引时,你需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件)。实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。上面都在说使用索引的好处,但过多的使用索引将会造成滥用。因此索引也会有它的缺点:原创 2021-08-26 17:17:04 · 374 阅读 · 0 评论 -
MySQL存储引擎
数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySQL的核心就是存储引擎。#查看存储引擎SHOW ENGINES;#查看数据库默认使用哪个引擎,可以通过使用命令:SHOW VARIABLES LIKE 'storage_engine';在MySQL中,不需要在整个服务器中使用原创 2021-08-24 21:58:52 · 92 阅读 · 0 评论 -
MySQL命令及相关介绍
原创 2021-04-05 15:08:37 · 90 阅读 · 0 评论 -
MySQL索引一些常用案例
索引案例分析先创建一些假数据:create table test03(id int primary key not null auto_increment,c1 char(10),c2 char(10),c3 char(10),c4 char(10),c5 char(10));insert into test03(c1,c2,c3,c4,c5)values('a1','a2','a3','a4','a5');insert into test03(c1,c2,c3,c4,c5)va原创 2021-03-18 10:54:51 · 356 阅读 · 0 评论 -
SQL基础-常用关键字
DDL(Data Definition Languages)数据定义语言,常用关键字包括create、drop、alter等0.连接数据库$mysql -u root -pconnection id 表示的是连接次数1.创建数据库 CREATE DATABASE dnname2.默认的数据库information_schema:主要存储了系统中的一些数据库对象信息,如用户表信...原创 2019-12-20 19:07:54 · 1535 阅读 · 0 评论 -
MySQL的常用操作命令详解
mysql服务">启动MySQL服务通过windows服务管理器启动MySQL服务 1 开始-->运行-->输入services.msc命令-->启动MySQL服务 通过DOS命令启动MySQL服务 1 net start mysql 停止MySQL服务通过windows服务管理...原创 2018-11-29 12:32:59 · 834 阅读 · 0 评论 -
MySQL的hash、btree索引的区别
Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree索引。可能很多人又有疑问了,既然Hash 索引的效率要比 B-Tree 高很多,为什么大家不都用 Hash 索引而还要使用 B-Tree索引呢?任何事物都是有两面性的,Hash 索引也一样,虽...翻译 2018-11-29 12:38:26 · 372 阅读 · 0 评论 -
MySQL各种加锁案例分析
目录InnoDB 锁类型InnoDB MVCC简要事务隔离级别SQL加锁分析(主题)死锁举例分析InnoDB锁类型InnoDB Lock Types❖Shared and Exclusive Locks❖Intention Locks❖Record Locks❖Gap Locks❖Next-Key Locks❖Insert Intention Locks...原创 2018-12-04 18:15:14 · 5334 阅读 · 0 评论 -
MySQL常用函数总结及用法
1、字符串函数ascii(str) 返回字符串str的第一个字符的ascii值(str是空串时返回0) mysql> select ascii('2'); -> 50 mysql> select ascii(2); -> 50 mysql> select ascii('dete'); -> 100 ord(str) 如果字...原创 2018-11-29 15:31:28 · 3873 阅读 · 0 评论 -
Mysql索引命令、优缺点、注意事项
创建表时简历索引1、建表同时建立单索引CREATE TABLE t_user1(id INT ,userName VARCHAR(20),PASSWORD VARCHAR(20),INDEX (userName) #关键字INDEX);2、建表同时建立唯一索引(可以是单或多)CREATE TABLE t_user2(id INT ,userName VARCHAR(2...原创 2018-12-10 11:31:07 · 247 阅读 · 0 评论 -
渗透之——SQL注入绕过技术总结
1.绕过空格(注释符/* */,%a0)两个空格代替一个空格,用Tab代替空格,%a0=空格:%20 %09 %0a %0b %0c %0d %a0 %00 /**/ /*!*/最基本的绕过方法,用注释替换空格:/* 注释 */使用浮点数: select * from users where id=8E0union select 1,2,3 select ...转载 2019-01-16 17:35:47 · 4161 阅读 · 0 评论 -
mysql大数据量新增字段的影响有那些?
mysql增加字段相信码农应该都不陌生,随手就可以写出来, sql如下:ALTER TABLE tbl_tpl ADD title(255) DEFAULT '' COMMENT '标题' AFTER id;但是线上的一张表如果数据量很大,执行加字段操作就会锁表,这个过程可能需要很长时间甚至导致服务崩溃,那么这样操作就很有风险了。都有那些影响: mysql 对写进行锁操作 ...原创 2019-05-31 11:29:58 · 10249 阅读 · 2 评论 -
Mysql 高可用 InnoDB Cluster 多节点搭建过程
1. 简介InnoDB Cluster 的搭建可以分为两种情况:(1)实验环境使用 sandbox 沙箱模拟数据库实例,这个非常简单,可以参考之前的一篇文章《体验 MySQL InnoDB Cluster》,也可以看 mysql 的官方文档,其中就是使用 sandbox 来介绍搭建过程的(2)真实多服务器节点环境真实环境下的搭建要更复杂一些,过程中我也遇到了一些问题,这方面的资...原创 2018-11-29 10:06:10 · 2521 阅读 · 0 评论