随笔分类 -  mysql

mysql在原有表的基础上添加分区
摘要:我们现在有一张表,tb_member_login_logs 用户登录日志表,但数据量太大,需要分区,建议新增一个days字段,int类型,值为 Ymd。 ALTER TABLE `tb_member_login_logs` ADD COLUMN `days` INT (11) UNSIGNED NO 阅读全文
posted @ 2020-03-31 11:02 怀素真 阅读(15764) 评论(0) 推荐(1) 编辑
mysql 悲观锁与乐观锁的理解
摘要:悲观锁与乐观锁是人们定义出来的概念,你可以理解为一种思想,是处理并发资源的常用手段。 不要把他们与mysql中提供的锁机制(表锁,行锁,排他锁,共享锁)混为一谈。 一、悲观锁 顾名思义,就是对于数据的处理持悲观态度,总认为会发生并发冲突,获取和修改数据时,别人会修改数据。所以在整个数据处理过程中,需 阅读全文
posted @ 2019-02-28 16:28 怀素真 阅读(5257) 评论(0) 推荐(1) 编辑
mysql 复制原理与实践
摘要:复制功能是将一个mysql数据库上的数据复到一个或多个mysql从数据库上。 复制的原理:在主服务器上执行的所有DDL和DML语句都会被记录到二进制日志中,这些日志由连接到它的从服务器获取,并复制到从库,并保存为中继日志, 这个过程由一个称为 IO线程 的线程负责,还有一个称为 SQL线程 的则按顺 阅读全文
posted @ 2018-12-28 22:02 怀素真 阅读(407) 评论(0) 推荐(0) 编辑
mysql 数据库备份的多种方式
摘要:一、使用mysqldump进行备份 1、完整备份所有数据库 在mysql8之前,存储过程和事件存储在mysql.proc和mysql.event表中。 从mysql8开始,相应对象的定义存储在数据字典中,这些表不会被备份。 要将存储过程和事件也包含,请使用如下语句: 2、时间点恢复 要获得时间点恢复 阅读全文
posted @ 2018-12-27 19:01 怀素真 阅读(2263) 评论(0) 推荐(0) 编辑
mysql 事务中如果有sql语句出错,会导致自动回滚吗?
摘要:事务,我们都知道具有原子性,操作要么全部成功,要么全部失败。但是有可能会造成误解。 我们先准备一张表,来进行测试 一、如果事务中,有某条sql语句执行时报错了,我们没有手动的commit,那整个事务会自动回滚吗? 答案:会。 当我们直接把窗口关掉,新开窗口再去查询表name时,表中没有第一次插入的记 阅读全文
posted @ 2018-12-27 13:45 怀素真 阅读(8365) 评论(3) 推荐(3) 编辑
mysql的事务,隔离级别和锁
摘要:事务就是一组一起成功或一起失败的sql语句。事务还应该具备,原子性,一致性,隔离性和持久性。 一、事务的基本要素 (ACID) 1、原子性:事务开始后,所有的操作,要么全部成功,要么全部失败,不可能处于中间状态,事务是一个不可分割的整体,就像原子一样。 2、一致性:事务开始前和结束后,数据库的完整性 阅读全文
posted @ 2018-12-26 21:20 怀素真 阅读(392) 评论(0) 推荐(0) 编辑
mysql5.7 生成列 generated column
摘要:生成列的值是根据列定义中的表达式计算得出的。 mysql5.7支持两种类型的生成列: 1、virtual 生成列:当从表中读取记录时,才计算该列值。不会把数据持久化在硬盘上。 2、stored 生成列:向表中写入记录时,计算该列值,并作为常规列持久化存储在硬盘上。 所以 virtual 相较于 st 阅读全文
posted @ 2018-12-25 21:58 怀素真 阅读(1715) 评论(0) 推荐(1) 编辑
mysql8 公用表表达式CTE的使用
摘要:公用表表达式CTE就是命名的临时结果集,作用范围是当前语句。 说白点你可以理解成一个可以复用的子查询,当然跟子查询还是有点区别的,CTE可以引用其他CTE,但子查询不能引用其他子查询。 一、cte的语法格式: 二、哪些地方可以使用with语句创建cte 1、select, update,delete 阅读全文
posted @ 2018-12-25 20:38 怀素真 阅读(850) 评论(0) 推荐(0) 编辑
mysql5.7 新增的json字段类型
摘要:一、我们先创建一个表,准备点数据 二、检索json列的字段 通过使用 -> 或 ->> 运算符检索json列的字段 使用 -> 和 ->> 的区别是结果用了引号包裹。 三、处理json的一些函数 JSON_PRETTY(json_val) 以优雅的格式显示json值 JSON_CONTAINS(ta 阅读全文
posted @ 2018-12-24 21:43 怀素真 阅读(7339) 评论(0) 推荐(2) 编辑
mysql left join 多条记录 1:n 的处理方法
摘要:一、准备两张表,文章表和评伦表 随便搞点测试数据 我们运行如下语句: 结果如上所示,主表中有多条记录重复显示了,因为条件 on c.a_id = a.id 主表中的一条记录对应右表中的多条记录,这种1 : n 的情况, left join 的处理方法是主表以重复的方式对应多条右表记录出现在结果集中。 阅读全文
posted @ 2018-12-23 00:38 怀素真 阅读(6238) 评论(0) 推荐(1) 编辑
centos7 二进制版本安装 mysql8.0.13
摘要:一、下载mysql二进制安装包 mysql官网: https://dev.mysql.com/downloads/mysql/ 由于国内网络问题,个人建议使用国内开源镜像站下载: http://mirrors.163.com/mysql/Downloads/MySQL-8.0/ http://mir 阅读全文
posted @ 2018-12-22 22:26 怀素真 阅读(269) 评论(0) 推荐(0) 编辑
mysql中left join设置条件在on与where时的区别
摘要:一、首先我们准备两张表来进行测试。 两个表的数据如图所示: 运行下面左连接查询: 我们分别在on和where后面加上条件,看看执行结果是否相同。 上面的两条语句,条件我们设置的是一样的都是b.id > 3,为什么显示结果不同。 sql语句查询的关键字顺序一般为 from > where > grou 阅读全文
posted @ 2018-12-20 13:55 怀素真 阅读(5358) 评论(0) 推荐(0) 编辑
mysql中各种join连表查询总结
摘要:通常我们需要连接多个表查询数据,以获取想要的结果。 一、连接可以分为三类: (1) 内连接:join,inner join (2) 外连接:left join,left outer join,right join,right outer join,union,union all (3) 交叉连接:c 阅读全文
posted @ 2018-12-17 17:25 怀素真 阅读(987) 评论(0) 推荐(0) 编辑
win10下安装配置mysql-8.0.13
摘要:1、下载mysql-8.0.13安装包 选择zip安装包下载就好。 2、解压到你要安装的目录 3、创建my.ini配置文件 4、以管理员的身份运行命令行程序,进入mysql的bin目录下,并运行安装指令 不带密码的: 自动随机生成密码的: 安装并启动服务: 5、使用上面随机生成的密码登陆mysql并 阅读全文
posted @ 2018-10-28 22:56 怀素真 阅读(6329) 评论(0) 推荐(0) 编辑
mysql 主从数据不一致 Slave_SQL_Running: No 解决方法
摘要:在slave服务器上通过如下命令 显示如下情况: 表示slave不同步 解决方法一(忽略错误,继续同步): 1、先停掉slave 2、跳过错误步数,后面步数可变 3、再启动slave 4、查看同步状态 解决方法二(重新做主从,完全同步): 1、先进入主库进行锁表,注意窗口不要关闭 2、把数据进行备份 阅读全文
posted @ 2017-09-23 17:12 怀素真 阅读(583) 评论(0) 推荐(0) 编辑
mysql 定时任务的使用
摘要:mysql5.1.6增加了一个事件调度器(Event Scheduler),可以做定时任务(定时删除记录,定时数据统计),取代之前系统的计划任务。mysql事件调度器可以精确到每秒执行一个任务。 事件调度器与触发器的区别:事件调度器是基于特定时间周期来触发执行某些任务,触发器是基于某个表产生的事件来 阅读全文
posted @ 2017-08-22 12:09 怀素真 阅读(512) 评论(0) 推荐(0) 编辑
mysql 中 replace into 与 insert into on duplicate key update 的使用和不同点
摘要:replace into和insert into on duplicate key update都是为了解决我们平时的一个问题 就是如果数据库中存在了该条记录,就更新记录中的数据,没有,则添加记录。 我们创建一个测试表test 向该表中插入一些数据 影响行数4,结果如下: 我们运行如下语句: 结果显 阅读全文
posted @ 2017-08-04 15:59 怀素真 阅读(4646) 评论(1) 推荐(2) 编辑
centos7下mysql5.6的主从复制
摘要:一、mysql主从复制介绍mysql的主从复制并不是数据库磁盘上的文件直接拷贝,而是通过逻辑的binlog日志复制到要同步的服务器本地,然后由本地的线程读取日志里面的sql语句,重新应用到mysql数据库中。mysql数据库支持单向,双向,链式级联,环状等不同业务场景的复制,一台服务器充当主服务器m 阅读全文
posted @ 2017-02-01 19:58 怀素真 阅读(2514) 评论(4) 推荐(1) 编辑
centos7下创建mysql5.6多实例
摘要:一、mysql安装目录说明mysql5.6以二进制安装包安装在/data/mysql56下数据目录为/data/mysql56/data下配置文件为/etc/my.cnf下二、多实例目录说明/mysql-instance |-- 3308 |-- data #3308实例数据目录 |-- 3309 阅读全文
posted @ 2017-01-31 17:06 怀素真 阅读(2386) 评论(0) 推荐(0) 编辑
centos7 二进制安装包安装 mysql5.6
摘要:centos7 二进制安装包安装 mysql5.6一、下载mysql5.6二进制安装包 如:mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz二、安装mysql5.6(安装在/data/mysql56)(1)、创建mysql用户账号 (2)、解压压缩包 (3)、重命名 阅读全文
posted @ 2017-01-29 16:20 怀素真 阅读(4226) 评论(0) 推荐(0) 编辑