
MySQL
文章平均质量分 81
串一串cc
微信公众号:cyc_java
展开
-
使用Canal实现数据库和Redis同步
一、简介Canal是Java开发的基于数据库增量日志解析工具,提供增量数据订阅和消费,目前主要支持MySQL。它的工作原理比较简单,就是将自己伪装成一个MySQL Slave,从Master同步数据。canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送dump 协议MySQL mas...原创 2020-06-09 00:55:00 · 1314 阅读 · 0 评论 -
MySQL执行计划explain解析
用法explain table或explain EXTENDED table 参数解释id:select查询的序列号,可以当做是执行顺序id相同时,执行顺序由上至下如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行id如果相同,可以认为是一组,从上往下顺序执行;在所有组中,id值越大,优先级越高,越先执行select_ty...原创 2020-06-09 00:55:00 · 155 阅读 · 0 评论 -
MySQL索引类型
索引类型MySQL中我们常用的索引类型有五种:普通索引唯一索引主键索引组合索引全文索引创建表:12345678CREATE TABLE `INDEX_TEST` ( `id` int(11) DEFAULT NULL, `name` varchar(11) DEFAULT NULL, `idno` varchar(1...原创 2020-06-09 00:55:00 · 152 阅读 · 0 评论 -
Char和varchar简单介绍
1. 数据长度 1) char(最大长度255个字节)长度固定(字段存入数据长度始终等于字段长度) 2) varchar(最大长度65535个字节)可变长度,存入数据长度为N个字节,则实际使用了N+1(255以上长度则+2)个字节的空间,多出来的1字节是用来存储数据实际长度。存入数据对比存入"ab"char查询出"ab&...原创 2020-06-09 00:55:00 · 906 阅读 · 0 评论 -
MySQL索引建立原则
前言索引的目的是提升查询数据的效率,所以我们建索引的标准应该一切从提升查询效率为基准。 小技巧对于有唯一值的列尽量使用唯一索引索引长度尽量小一点,长度小的索引可以节省索引空间,也会使查找的速度得到提升,因为索引页只有16k,索引列长度小的话,一页可以容纳更多的数据太长的列可以选择部分内容做索引,遵循最左前缀原则更新频繁的列不适合建索引...原创 2020-06-09 00:55:00 · 143 阅读 · 0 评论 -
聊一聊MySQL事务
一、事务为何物事务(Transaction)是保障程序中一组操作的原子性的约束,它使事务中的所有操作都指向同一个结果,也就是要么所有的操作都执行成功,要么所有的操作都执行失败,不允许出现其他结果。例如银行转账,从A账户扣除金额,向B账户添加金额,这两个数据库操作的总和构成一个完整的逻辑过程,不可拆分,这个过程被称为一个事务。在MySQL中,目前只有InnoDB引...原创 2020-06-09 00:55:00 · 145 阅读 · 0 评论 -
MySQL使用查询缓存
查询服务是否已开启缓存执行show variables like '%query_cache%';查看缓存状态Variable_name: query_cache_type为缓存状态,ON表示开启,OFF表示关闭开启/关闭使用查询缓存修改my.cnf文件进行开启和关闭[mysqld]中添加/修改:query_ca...原创 2020-06-09 00:55:00 · 160 阅读 · 0 评论 -
MySQL连接查询
左连接左连接基本格式为A left join B on A.key=B.key,比如以下语句:1select * from A left join B on A.id=B.id;如果A、B表的数据结构为:table Atable Bid, nameid, name1, xiaolu1, xiaolu2, chuanch...原创 2020-06-09 00:55:00 · 195 阅读 · 0 评论 -
MySQL存储引擎下的索引
MySQL存储引擎MySQL支持多种存储引擎,我们可以通过show engines命令查看当前数据库所支持的存储引擎列表,那么不同存储引擎下的索引实现方式是否会有所不同?那是当然的,但只不过都大同小异而已,我们目前常用的存储引擎大多是InnoDB,主要是因为InnoDB支持事务、行锁、外键等功能,第二常用的就是MyIsam,但是在MySQL5.5版本之后,Inn...原创 2020-06-09 00:55:00 · 119 阅读 · 0 评论 -
MySQL修改启动端口无效
今天遇到一个特别沙雕的问题:在安装MySQL的时候,指定了my.cnf文件,但是文件中指定的端口一直不生效,每次启动都是用的3306。对my.cnf内容进行了检查核对,发现配置文件并无问题,也就是在配置文件内容没有任何错误的情况下,配置并未生效,这就相当的奇怪了,排查了好久,最终在官网,找到了响应的解决方案,不过在讲解决方案之前,我们来说一下mysql配置文件的使用规则。my.cnf加载顺序我们查看MySQL在启动的过程中,如果未指定--defaults-file,那么会加载哪里的my.cnf呢?我们查原创 2021-02-06 20:06:05 · 4225 阅读 · 0 评论 -
使用HAProxy搭建MySQL集群
引言我们知道搭建MySQL集群有MHA、MGR、MMM,以及MySQL官方提供的MySQL-Cluster方式,以下主要以MGR方式为主做介绍,稍后再介绍这几种集群方式的差异。我们先简单的介绍一下MGR架构,MGR的全称是MySQL Group Replication,是官方在5.7.17版本推出的基于paxos协议的集群方案。有人说MGR是基于状态机的集群设计,每一个节点都可以看做是一个状态机,任何一个节点出现服务器信息我准备了四台机器,一台haproxy节点,三台MySQL节点,这三个M.原创 2021-02-02 22:15:11 · 1991 阅读 · 0 评论 -
MyBatis自定义TypeHandler解决字段映射问题
小林子:串哥串一串:干哈啊,又来小林子:如果MySQL一张表中一个字段存储的数据格式是"1,2,3,4,5",也就是逗号分隔的,我如何能让别的使用者在无感知的情况下,只用List<Integer>来传输和接收?持久层用的MyBatis。你滴明白我的意思吗?串一串:不明白小林子:…串一串:你知道MyBatis中有一个类叫BaseTypeHandler吗?这个类可以满足你的需求。小林子:具体要怎么做?我有点懵,没接触过这个类,它是干嘛的?串一串:我们来看个例子创建一张表待用:c.原创 2021-01-19 01:18:27 · 1775 阅读 · 0 评论 -
MySQL全量备份和增量备份
MySQL目前是市面上比较流程的关系型数据库,很多人使用MySQL里的数据真的安全吗?如果发生以下问题的话:MySQL数据目录所在磁盘损坏MySQL服务器发生故障人为操作失误导致删除了一些数据黑客入侵导致数据被攻陷等问题这个时候如果没有备份数据库中的数据,造成的影响将是非常严重的,但是我们备份数据不能每天手动的去全量导出,如果放假忘记了或者啥啥啥的,咋整?所以还是要让备份交给服务器去做调度。这里推荐的备份工具是innobackupex,首先要安装它,步骤如下(centos):官网:http原创 2021-01-14 10:30:52 · 381 阅读 · 0 评论