![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
文章平均质量分 88
thetimelyrain
见微知著
展开
-
mysql主从执行sql失败:Slave_IO_Running: No, Slave_SQL_Running: No.
详细报错:Slave_IO_Running: No, Slave_SQL_Running: No. Please make sure replication runs before using gh-ost.网上找了下资料,特此记录:一、问题描述:当我们配置好MySQL主主同步时,是可以实现主主同步,但是重启机器后或者其他原因导致MySQL无法同步了。二、Slave两个关键进程mysql replication 中slave机器上有两个关键的进程,死一个都不行,一个是slave转载 2021-05-28 10:39:45 · 589 阅读 · 0 评论 -
mysql索引分类和优化
1.数据结构角度1.1B+树索引1.2Hash索引优点:查询效率高缺点:不支持范围查询1.3FULL TEXT索引2.物理存储角度2.1聚簇索引索引和数据存储在一起2.3非聚簇索引索引和数据存储分离3.逻辑角度3.1主键索引主键索引是特殊的唯一索引,而且不允许有空值随表一起建索引:CREATE TABLE customer (id INT(10) UNSIGNED AUTO_INCREMENT ,customer_no VARCHAR(200),c原创 2021-03-03 14:16:06 · 85 阅读 · 0 评论 -
mysql的事务总结
1、事务的基本要素(ACID)原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。 一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 。比如A向B转账,不可能A扣了钱,B却没收到。 隔离性(Isolation):同一时间,只允许一个事务请求同一数据,不同的事务之间彼此没转载 2021-02-24 18:05:46 · 123 阅读 · 0 评论 -
MySql处理超大分页方法和原理
超大分页怎么处理?当数据库数据量达到百万级别,而我们又需要在查询条件之后使用limit进行分页,那么我们就不能简单的使用普通的sql语句了。比如我们有下面一张表:CREATE TABLE `vote_record` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `user_id` varchar(20) NOT NULL DEFAULT '' COMMENT '用户Id', `vote_num` int(10) unsigned NO原创 2020-12-10 16:14:26 · 3352 阅读 · 2 评论 -
数据库设计的范式和反范式介绍
范式化第一范式:每一列都是不可再分的最小数据单元,确保每一列的原子性。 第二范式:如果一个关系满足1NF,并且除了主键以外的其它列,都依赖与该主键;即非键字段必须依赖于键字段 第三范式:在1NF基础上,除了主键以外的其它列都不传递依赖于主键列,或者说: 任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖)反范式化不满足范式的模型,就是反范式模型,反范式跟范式所要求的正好相反,在反范式的设计模式,并不是完全不遵守范式模型,而是允许适当的数据的冗余,用这个冗余去取操作数据时间的缩短。本质原创 2020-12-10 15:05:17 · 372 阅读 · 0 评论 -
mysql表级锁和行级锁的场景分析
mysql的锁是由具体的存储引擎实现的。所以像Mysql的默认引擎MyISAM和第三方插件引擎 InnoDB的锁实现机制是有区别的。Mysql有三种级别的锁定:表级锁定、页级锁定、行级锁定MyISAM中是不会产生死锁的,因为MyISAM总是一次性获得所需的全部锁,要么全部满足,要么全部等待。而在InnoDB中,锁是逐步获得的,就造成了死锁的可能。MySQL这3种锁的特性可大致归纳如下。表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。 行级锁:开销大,加锁慢;原创 2020-12-08 14:54:06 · 2439 阅读 · 0 评论 -
Linux环境下搭建mysql并配置主从服务器
本文主要介绍使用tar包的方式安装mysql5.7版本,并且配置至少一主一从的主备服务器。1.下载mysql下载网址: https://dev.mysql.com/downloads/mysql/博主选择的是5.7.27社区版的64位mysql,各位可以按照自己的需求自行下载。2.安装mysql最好的安装位置是/usr/local,因为mysql有很多配置的默认的这个位置,放在这里会避免很多不必要的麻烦,当然你也可以安装在你需要的位置。我的本地环境是安装在此位置下,生产环境并不是。.原创 2020-11-06 14:54:22 · 532 阅读 · 0 评论 -
MySql报错:You can‘t specify target table ‘t‘ for update in FROM clause
工作中遇到一个需求,现在抽象出来,简单来说,就是一个update 语句的条件是需要用select查询语句查出来的,数据如下:需要更新p_id字段为主键id,一开始sql如下:UPDATE test.`user` t SET t.p_id = ( SELECT p.id FROM test.`user` p );直接报错:查询资料后,发现有解决办法,是在update的时候使用join连表(网上一大堆说在包一层select查询的不行),正确的sql如下:UPDATE test.原创 2020-08-14 11:14:45 · 422 阅读 · 0 评论 -
MySQL的间隙锁简析
当我们用范围条件而不是相等条件检索数据,并请求共享或排他锁时,InnoDB会给符合条件的已有数据记录的索引项加锁;对于键值在条件范围内但并不存在的记录,叫做“间隙(GAP)”,InnoDB也会对这个“间隙”加锁,这种锁机制就是所谓的间隙锁(Next -Key锁)。举例来说,假如emp表中只有101条记录,其empid的值分别是1,2,...,100,101,下面的SQL:Select * from emp where emp id > 100 for update; 是一个范围条件的检索,InnoDB原创 2020-12-09 17:13:11 · 432 阅读 · 0 评论 -
MySQL并发控制之锁介绍
无论何时,只要有多个查询需要在同一时刻修改数据,都会产生并发控制的问题,MySQL在解决并发问题的时候,是通过实现一个由两种类型的锁组成的锁系统来解决的:读写锁事务可以通过以下语句给sql加共享锁和排他锁:共享锁:select …… lock in share mode;排他锁:select …… for update;1.共享锁(shared lock)共享锁也叫读锁(read lock),是读取操作创建的锁。其他用户可以并发读取数据,但任何事务都不能对数据进行修改(获取数据上的排他锁),原创 2020-05-22 10:37:58 · 169 阅读 · 0 评论 -
mysql使用EXPLAIN查看执行计划
我们经常使用 MySQL 的执行计划来查看 SQL 语句的执行效率:如下id列这一列总是包含一个编号,标识select所属的行,如果在语句中没有子查询或联合查询,那么只会有唯一的select,于是每一行在这个列中都将显示一个1.mysql将select查询分为简单和复杂类型,复杂类型可以分为三大类:简单子查询、所谓的派生表(在from子句中的子查询),以及union查询id 相同,执行顺序由上至下 id 不同,如果是子查询,id 的序号会递增,id 值越大优先级越高,越先被执行..原创 2020-05-21 10:50:40 · 414 阅读 · 0 评论