
mysql
文章平均质量分 72
Json2011315
这个作者很懒,什么都没留下…
展开
-
MySQL的四种事务隔离级别
一、事务的基本要素(ACID)原子性(Atomicity):即不可分割性,事务要么全部被执行,要么全部不执行一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏。比如A向B转账,不可能A扣了钱,B没有收到。隔离性(Isolation):同一时间,只允许一个事务请求同一数据,不同的事务之间彼此没有任何干扰。比如A正在从一张银行卡中取钱,在A取钱的过程结束钱,B不能向这张卡转账。持久性(Durability):事务完成后,事务对数据库的所有更新将被保存到数据库,不能回滚原创 2021-05-10 21:34:45 · 297 阅读 · 5 评论 -
mysql (MHA)集群安装
1. MHA工作原理保存宕机的master日志(通过mha-node工具保存)在slave节点中识别复制量偏移量最大的slave将识别到复制量最大的slave日志复制到其余的slave节点将宕机master的binlog复制到将要升级为master的slave节点提升slave升级为master,ip切换 (虚拟原宕机的虚拟ip,漂移到新的master)将其它slave的master指向新的master说明:1.mha-manager 心跳检测官和总指挥官2.mha-node 节点原创 2020-09-25 14:11:42 · 705 阅读 · 0 评论 -
MySQL - percona-toolkit工具 (一)
1.简要说明Percona Toolkit是Percona支持人员使用的高级命令行工具的集合,这些人员可以执行各种MySQL,MongoDB和系统任务,这些任务太难或太复杂而无法手动执行。这些工具是私有或“一次性”脚本的理想替代品,因为它们是经过专业开发,经过正式测试并具有完整文档的。它们也是完全独立的,因此安装快速简便,并且没有安装任何库。Percona Toolkit源自Maatkit和Aspersa,这两个MySQL服务器管理最著名的工具包。它是由Percona开发和支持的。有关更多信息和Per原创 2020-05-28 12:09:00 · 373 阅读 · 0 评论 -
mysql 游标的概念
游标的概念游标 cursor1.cursor 游标 (不同于select的一次性全部取出)比如一条where语句,对应了N条结果,而对应N条结果集组成的资源,取出资源的接口/句柄,就是游标我们沿着游标,可以一次只取一行2.基本知识declare 声明游标 declare 游标名 cursor for select_statementopen 打开游标资源open 游标名 f...原创 2019-10-12 11:15:06 · 470 阅读 · 0 评论 -
mysql 分区-hash分区(四)
Hash分区Hash分区,分区字段必须是整型或者转换为整型Hash分区主要用来分散热点读,确保数据在预先确定个数的分区中可能的平均分布。对一个表执行Hash分区时,mysql会对分区键应用一个散列函数,以此确定数据应当放在N个分区中的哪个分区。mysql支持两种hash分区:常规hash分区使用的是取模算法,对应一个表达式expr是可以计算出它被保存到哪个分区中,N = MOD(expr...原创 2019-10-09 17:35:47 · 1242 阅读 · 0 评论 -
mysql 分区-key分区(五)
key分区按照key进行分区非常类似于按照hash进行分区,只不过hash分区允许使用用户自定义的表达式与hash分区不用的是,key分区不允许使用用于自定义的表达式,需要使用mysql服务器提供的hash函数,不需要hash分区那样对字段整型进行转换,同时hash分区只支持整数分区,而key分区支持使用出blob or text类型外的其他类型的列作为分区键。和hash功能一样,不同的是...原创 2019-10-09 18:48:04 · 4908 阅读 · 0 评论 -
mysql 分区-columns分区(六)
columns分区在mysql5.5之前range分区和list分区只支持整数分区,可以通过额外的函数运算或者额外的转换从而得到一个整数。columns分区分为 range columns 和 list columns 两种,支持整数(tinyint到bigint, 不支持decimal 和float)、日期(date、datetime)、字符串(char、varchar、binary、varb...原创 2019-10-10 14:22:13 · 1194 阅读 · 0 评论 -
mysql 分区-子分区(七)
子分区子分区(subpartition):是分区表中对每个分区的再次分割,又被称为复合分区,目前只有RANGE和LIST分区的表可以再进行子分区,子分区只能是HASH或者KEY分区。复合分区适用于保存非常大量的数据记录。子分区由两种创建方法:一种是不定义每个子分区子分区的名字和路径由分区决定,二是定义每个子分区的分区名和各自的路径。语法1(不定义每个子分区子分区的名字和路径):cre...原创 2019-10-10 14:58:52 · 5460 阅读 · 0 评论 -
mysql 分区总结(八)
分区应该注意的事项:做分区时,要么不定义主键,要么把分区字段加入到主键中分区字段不能为NULL,要不然怎么确定分区范围呢,所以尽量NOT NULLmysql提供了添加、删除、重定义、合并、拆分分区的命令,这些操作都可以通过alter table 命令来实现=========================================================1.range分...原创 2019-10-10 18:07:30 · 310 阅读 · 0 评论 -
MySQL的varchar定义长度到底是字节还是字符,varchar字符长度的计算
1.在开始之前先简单介绍下字符和字节的区别: - 字符 人们使用的记号,抽象意义上的一个符号。一个汉字和英文就是一个字符,如'1', '中', 'a', '$', '¥',…… - 字节 计算机中存储数据的单元,一个8位的二进制数,是一个很具体的存储空间,如0x01, 0x45, 0xFA,……详细的可以参考:https://baike.baidu.com/item/%E5%AD%9...原创 2019-10-11 10:53:38 · 28370 阅读 · 0 评论 -
mysql 存储过程
1 存储过程概念存储过程封装若干条语句,调用时,这些封装体执行,存储过程是没有返回值的函数存储过程-------把若干条sql封装起来,起个名字----过程把此过程存储在数据库中----------存储过程存储过程是可以编程的意味着可以使用变量,表达式,控制结构来完成复杂的功能1.1 存储过程的创建语法create procedure prodedureName() ---(存储...原创 2019-10-11 16:58:43 · 174 阅读 · 0 评论 -
mysql 分区-list分区(三)
list分区list分区与range分区有类似的地方:demo1:假定你需要将超市员工划分地区,该表有40家超市职员记录。这40家超市的编号从1到40。而这40家超市分布在5个有经销权的地区,店铺分布如下表示地区店铺id号东区1,2,3,4,5,6,7,8南区17,18,19,20,21,22,23,24西区33,34,35,36,37,38,39,4...原创 2019-10-09 16:29:22 · 413 阅读 · 0 评论 -
mysql 分区-range分区(二)
range分区demo1:假如一个大型超市有40多家门店,该表保存40家超市的职员记录。这40家超市的的编号从1到40,若果你想将其分成4个小分区,那么你可以采用range分区,创建的数据库表如下:#方式1CREATE TABLE `employees_range_max` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `enam...原创 2019-10-09 14:18:28 · 550 阅读 · 0 评论 -
MySQL 分表,分区(一)
MySQL 分表,分区分表又分横向拆分【表结构一样,数据不一样】纵向拆分【表结构不一样,数据不一样】什么是分表?分表是将一个大表按照一定的规则分解成多张具有独立存储空间的实体表,我们可以称为子表,这些子表可以分布在同一块磁盘上,也可以在不同的机器上。app读写的时候根据事先定义好的规则得到对应的子表名,然后去操作它。什么是分区?分区和分表相似,都是按照规则分解表。不同在于分表将大表分解...原创 2019-10-08 18:08:33 · 274 阅读 · 0 评论 -
linux 环境下 mysql bin-log 日志基本操作
1.开启bin-log日志[root@localhost mysql]# vim /etc/my.cnf设置/添加 log-bin=mysql-bin 确认是打开状态(值 mysql-bin 是日志的基本名或前缀名);添加后重启【请安你安装的mysql目录操作】[root@localhost mysql]#[root@localhost mysql]# /usr/local/mysql...原创 2019-09-25 18:45:23 · 1893 阅读 · 0 评论 -
docker 配置 mysql 主从复制
1.拉取官方的镜像,标签为5.7[root@localhost ~]# docker pull mysql:5.7[root@localhost ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED ...原创 2019-09-27 18:15:51 · 227 阅读 · 0 评论 -
mysql explain详解
demo:mysql> explain select * from yh_trade where fk_store_id=167 ORDER BY trade_time_created desc;+----+-------------+----------+------------+------+---------------+-------------+---------+------...原创 2019-09-29 10:18:38 · 135 阅读 · 0 评论 -
mysql 锁级别说明 一
1.锁的类型MySQL各存储引擎使用了三种类型(级别)的锁定机制:表级锁定,行级锁定和页级锁定。锁级别存储引擎表级别(table-level)MyISAM,MEMORY,CSV行级别(row-level)inndb页级别(page-level)bdb2.锁类型说明2.1表级锁定(table-level)表级别的锁定是MySQL各存储引擎中最大颗粒...原创 2019-09-29 10:36:43 · 1757 阅读 · 0 评论 -
mysql 锁级别说明 (表级锁)二
表级锁定MyISAM存储引擎使用的锁定机制完全是由MySQL提供的表级锁定实现,所以下面我们将以MyISAM存储引擎作为示例存储引擎。1.MySQL表级锁的锁模式MySQL的表级锁有两种模式:表共享读锁(Table Read Lock)表独占写锁(Table Write Lock)锁模式的兼容性:当前表级锁模式读锁写锁读锁兼容不兼容写锁不兼容不...原创 2019-09-29 10:50:11 · 947 阅读 · 0 评论 -
mysql 锁级别说明 (行级锁)三
行级锁行级锁定不是MySQL自己实现的锁定方式,而是由其他存储引擎自己所实现的,如广为大家所知的InnoDB存储引擎,以及MySQL的分布式存储引擎NDBCluster等都是实现了行级锁定。考虑到行级锁定均由各个存储引擎自行实现,而且具体实现也各有差别,而InnoDB是目前事务型存储引擎中使用最为广泛的存储引擎,所以这里我们就主要分析一下InnoDB的锁定特性。1.InnoDB锁定模式及实现机...原创 2019-09-29 14:36:20 · 1049 阅读 · 0 评论 -
mysql 锁级别说明 四
1.死锁MyISAM表锁是deadlock free的,这是因为MyISAM总是一次获得所需的全部锁,要么全部满足,要么等待,因此不会出现死锁。但在InnoDB中,除单个SQL组成的事务外,锁是逐步获得的,当两个事务都需要获得对方持有的排他锁才能继续完成事务,这种循环锁等待就是典型的死锁。在InnoDB的事务管理和锁定机制中,有专门检测死锁的机制,会在系统中产生死锁之后的很短时间内就检测到该死...原创 2019-09-30 11:44:28 · 643 阅读 · 0 评论 -
mysql5.7 权限检查
用户---------》MySQL服务器分为两个阶段1.你有没有权限连接到MySQL2.你有没又权限执行此操作(select,update等)对于:1.服务器如何判断用户有没有权连接上来?1.你从哪里来---》Host2.你的用户名---》User3.你的密码------》Password登录的案例:>mysql -h 127.0.0.1 -u root -p **...原创 2019-09-30 12:17:22 · 1285 阅读 · 0 评论 -
mysql 触发器
mysql之触发器trigger触发器(trigger):监视某种情况,并触发某种操作。触发器创建语法四要素:1. 监视地点(table)2. 监视事件(insert/update/delete)3. 触发时间(after/before)4. 触发事件(insert/update/delete)语法:create trigger triggerName(触发器名称)after/b...原创 2019-10-08 15:31:47 · 168 阅读 · 0 评论 -
mysql 索引建立及优化
常识:mysql 编辑的字段类型是 字符长度utf-8 1个字符=3个字节 1个字节=8个位一个英文字母字符存储需要1个字节1.MySQL 表的优化和列类型选择 表的优化 1.定长和变长,常用核心字段可以用char,不常用可以用varchar,而varchar,text,blob这种变长的字段,适合放一张表,用主键与核心表关联利用空间提高查询效率 2.常用字段和...原创 2019-10-08 17:57:36 · 154 阅读 · 0 评论 -
linux环境下mysql5.7安装
1.下载安装包【下载通用版】https://dev.mysql.com/downloads/mysql/[root@localhost ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.21-linux-glibc2.12-x86_64.tar[root@localhost ~]# lsanaconda-ks....原创 2019-09-25 18:10:02 · 220 阅读 · 0 评论