
MySQL
学习记录mysql
RT_0114
量变引起质变,生命不止奋斗不息!
展开
-
mysqldump迁移数据
数据量在G级别的可以使用mysqldump来迁移,T级别的不建议使用,测试验证6.9G的文件通过mysqldump方式gz后699M,耗时27分钟,压缩率在10倍,30分钟处理7G数据,换算下来一分钟处理238M数据,结论就是如此。恢复的时候速度很快,6.9G的数据恢复具体时间没看,大概不到5分钟时间。原创 2024-06-13 17:38:00 · 680 阅读 · 0 评论 -
mysql乾坤大挪移A库下的表去B库
使用场景:A库下的表mv到B库去,因为是mv所以很快,这里强调不是copy,执行完A库下的表就没了。测试几十G的数据只需要十几秒。原创 2022-10-27 11:30:43 · 603 阅读 · 0 评论 -
mysqlbinlog命令使用
参考:https://www.cnblogs.com/zouhong/p/14540380.html原创 2022-04-10 00:02:05 · 1921 阅读 · 0 评论 -
mysqldump增量恢复
参考文献:https://www.cnblogs.com/clsn/p/8138015.html#_label2原创 2022-04-08 10:15:16 · 1034 阅读 · 0 评论 -
mysqldump备份数据基本命令+定时全备
参考文献:https://www.cnblogs.com/clsn/p/8138015.html#_label2https://www.cnblogs.com/zouhong/p/14540380.htmlhttps://blog.youkuaiyun.com/qq_33468857/article/details/84324609-A备份全库一般不用mysqldump -uroot -p -A>/home/mysqlbak/full.sql-B备份指定库和表#备份clsn库和a库,以及库下的所有原创 2022-03-31 23:18:28 · 743 阅读 · 0 评论 -
MySQL读写分离方案
结论:以下三种方案各有优缺点。1、基于MySQL proxy代理的方式对于应用来说相对简单,但是在项目稳定性、事务支持性等方面还存在问题;2、而基于应用内路由的方式固然灵活度比较高,但是也增加了应用逻辑的复杂度;3、基于mysql-connector-java的jdbc驱动和sharding-jdbc的方式在使用上相对简单,但限制了需要使用java开发。为什么要做读写分离:数据库写入效率要低于读取效率,一般系统中数据读取频率高于写入频率,单个数据库实例在写入的时候会影响读取性能,这是做读写分离的转载 2022-03-19 19:02:56 · 527 阅读 · 1 评论 -
springboot+druid监控
<!-- druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.9</version> </depende...原创 2021-10-24 22:57:07 · 151 阅读 · 0 评论 -
MYSQL索引失效-复合索引实例-版本5.7
这个最简单。只要复合最左原则,好比你上楼梯,你要一层一层爬,中间断了一层就上不去了。索引就断了。也就是失效了。原创 2021-06-22 10:58:36 · 188 阅读 · 0 评论 -
MYSQL索引失效-IS NOT NULL操作实例-版本5.7
打死都别用别用is not null,主键都扛不住失效了。is null索引不失效。针对普通索引,主键和唯一索引为null了这数据也是没天了。用is not null主键索引都是失效了,其他索引就别提了。is null索引不失效,当然是针对普通索引了。...原创 2021-06-22 10:34:21 · 905 阅读 · 0 评论 -
MYSQL索引失效-EXIST操作实例-版本5.7
exists主查询索引失效,子查询索引不失效。not exists索引不失效。因此:在取舍in和exists时候,包含选in,不好含选not exists。exists主查询索引失效,子查询索引不失效。示例。not exists索引不失效。不失效。...原创 2021-06-22 10:26:41 · 1164 阅读 · 0 评论 -
MYSQL索引失效-IN操作实例-版本5.7
主键in操作不会失效。唯一索引、普通索引:in不会失效,not in失效。主键in操作永远不失效,示例。唯一索引in不失效,示例。唯一索引 not in失效,示例。原创 2021-06-22 10:09:46 · 420 阅读 · 0 评论 -
MYSQL索引失效-LIKE实例-版本5.7
不包含主键。一般也没人会去like主键吧。'%abc' '%abc%'会导致索引失效。'abc%'不会导致索引失效。不会有like主键吧。like主键不管怎么写都会导致索引失效。唯一索引和普通索引一样。失效唯一索引和普通索引一样。不失效...原创 2021-06-22 09:51:17 · 234 阅读 · 0 评论 -
MYSQL索引失效-OR失效实例-版本5.7
where后用or拼起来的查询条件必须全部是索引,才会走索引。只要有一个不是索引就不会走索引。type不是索引。原创 2021-06-22 09:42:24 · 197 阅读 · 0 评论 -
MYSQL索引失效-列进行计算实例-版本5.7
对主键进行计算,会失效。至于唯一索引和普通也一样。原创 2021-06-22 09:28:23 · 175 阅读 · 0 评论 -
MYSQL索引失效-类型转换-版本5.7
不考虑单查索引的情况,只考虑select * 。主键索引、唯一索、普通索引: 索引类型是数字,传入字符串不会失效。 索引类型是字符串:传入数字会失效。索引是字符串,传入数字导致索引失效。索引是数字,传入字符串不失效。...原创 2021-06-22 08:52:44 · 230 阅读 · 0 评论 -
MYSQL索引失效-不等于实例-版本5.7
网上说的不等于导致索引失效80%都是有纰漏的。总结:主键索引:永远不会失效。唯一索引:查主键+唯一索引不会失效,其他都会失效。普通索引:查主键不会失效,其他都会失效。表:主键索引id,唯一索引seq_ord_no,普通索引:project_no主键索引:不管select什么都不会失效唯一索引:select*会失效唯一索引:select主键+唯一索引,不会失效唯一索引:select主键+唯一索引+普通索引,会失效,跟select*一样。普通索引:se原创 2021-06-22 08:04:26 · 569 阅读 · 0 评论 -
mysql插入数据返回自增
别慌:上代码。xml: <insert id="insertSeqOrderItf" useGeneratedKeys="true" keyProperty="id"> insert into nsrv_seq_ord_itf (seq_order_id,request_msg) values (#{seqOrderId},#{requestMsg}); </insert>dao:insertSeqOrderItf(Seq.原创 2021-05-29 19:09:31 · 163 阅读 · 0 评论 -
docker安装mysql
数据同步,设置密码。#启动mysql#--name 别名#-v 数据卷#-p 端口映射#-e root密码#-d 后台docker run --name mysql5.7-01 \-v /home/mysql/config:/etc/mysql/config.d \-v /home/mysql/data:/var/lib/mysql \-p 3310:3306 \-e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7...原创 2021-05-12 10:11:31 · 116 阅读 · 0 评论 -
mysql函数find_in_set
find_in_set用法and find_in_set(#{shareWith},share_with)原创 2021-05-11 20:17:57 · 154 阅读 · 0 评论 -
获取当天23时59分59秒
select concat(date_format(now(),'%Y-%m-%d'),' ','23:59:59');原创 2021-04-09 15:52:07 · 792 阅读 · 0 评论 -
truncate mysql批量删除表的数据
模板拼接执行语句:SELECT CONCAT( 'truncate TABLE ', table_schema, '.', TABLE_NAME, ';' ) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema IN ( 'db_name' );只需要替换sql中 db_name为你自己的数据库名,导出即可用。原创 2020-09-12 15:09:05 · 736 阅读 · 0 评论 -
mysql 前置后置补零
--0002select lpad(2, 4, 0);--2000select rpad(2, 4, 0);原创 2020-08-12 17:18:46 · 275 阅读 · 0 评论 -
mysql 实现自增序列
参考此博客1、创建表tb_sequence,用来存放sequence值:create table tb_sequence(name varchar(50) not null,current_value int not null,_increment int not null default 1, primary key(name)); 2、手动插入数据:insert into tb_sequence values('userid',100,2); 3、定义函数 _nextval:原创 2020-08-12 17:17:41 · 388 阅读 · 0 评论 -
十六、本地搭建双主双从
基于上一篇博客本地多实例基础上搭建双主双从。再次特别感谢此篇博客。1、理清楚主从关系2、配置第一台主数据库,进入my.ini文件,新增如下配置server-id=3306 #全局唯一log-bin=D:\mysqlBinLog\mysql3306\mysqlbin #logbin日志binlog-ignore-db=mysql #不同步的数据库,也可以不配置binlog_format=mixed #同步模式auto_increment_increment=2 #有几台主机就原创 2020-08-02 13:58:32 · 207 阅读 · 0 评论 -
十五、windows版本mysql多实例
废话不说经历一周,在windows上搭建mysql多个实例,找了好多资料,核心是改配置文件但是就是不行。最终实现分享出来。1、下载对应版本免安装MySQL我用的是5.5.48版本此处提供下载网盘地址:mysql5.5.48 提取码:5oy6。2、解压到D:\mysql5.5.6目录随便你指定3、别慌先把data文件复制4份分别是data3306、data3307、data3308、data33094、new一个文件叫my.ini,把下面的粘贴进去[mysqld1]# ..原创 2020-08-01 22:58:38 · 563 阅读 · 0 评论 -
查看自己的mysql安装在哪里
show variables like "%char%";原创 2020-07-25 21:26:00 · 542 阅读 · 0 评论 -
mysql where 后带 case when的查询
SELECT * FROM `eat_milk_every_day` WHERE ad = 10 and CASE WHEN dha = 0这个是要操作的数据SELECT * FROM `eat_milk_every_day` WHERE ad = 10 ANDCASE WHEN dha = 0 THEN fe = 0 ELSE ca = 10 END这个查询的意思是:当dha = 0的时候fe = 0 否则 ca = 10,用sql翻译就是: wh.原创 2020-07-15 14:08:14 · 4512 阅读 · 0 评论 -
exists ; not exists ; in ; not in ;
记录下以后就不百度了;existsSELECT A.*FROM AWHEREEXISTS (SELECT B.* FROM B WHEN A.id = B.id)not existsSELECT A.*FROM AWHERENOT EXISTS (SELECT B.* FROM B WHEN A.id = B.id)当A表数据大于B表数据时,选择in比exists执行效率要高相反,A表数据小于B表数据时,选择exists比较高效not in 会使索引原创 2020-07-14 14:24:58 · 122 阅读 · 0 评论 -
mybatis接收以逗号分隔的字符串批量查询
<IF test = " supplierIds !=null and supplierIds.indexOf(',') != -1 "> AND msd.supplier_id NOT IN <foreach collection = "supplierIds.split(',')" item = "item" OPEN = "(" SEPARATOR = "," CLOSE = ")"> #{item} .原创 2020-07-13 08:04:39 · 2621 阅读 · 0 评论 -
mysql数据库被卡住分析
1、按客户端 IP 分组,看哪个客户端的链接数最多SELECT client_ip, count( client_ip ) AS client_num FROM ( SELECT substring_index( HOST, ':', 1 ) AS client_ip FROM information_schema.PROCESSLIST ) AS connect_info GROUP BY client_ip ORDER BY client_num DESC;2、查看正在执原创 2020-06-30 09:50:34 · 566 阅读 · 0 评论 -
mysql的null值排序
mysql默认null参与排序时候是最小值mysql> select * from user order by age asc;+----+------+------+----------+| id | name | age | class_id |+----+------+------+----------+| 2 | rt | NULL | NULL ||...原创 2020-03-20 17:26:31 · 271 阅读 · 0 评论 -
十四、Mycat-纵向分库-crc32slot算法-读写分离
配置schema文件 <?xml version="1.0"?><!DOCTYPE mycat:schema SYSTEM "schema.dtd"><mycat:schema xmlns:mycat="http://io.mycat/"> <schema name="TE...原创 2020-07-26 17:54:19 · 559 阅读 · 0 评论 -
十三、Mycat-全局序列
在mycat conf目录下的sequence_db_conf.properties文件中添加如下内容: #sequence stored in datanodeGLOBAL=dn1COMPANY=dn1CUSTOMER=dn1# 配置此项为你存放mycat_sequence表和函数的节点ORDERS=dn1 dn1是你在schema.xml文件中的节点对应的数据库 ...原创 2020-03-09 19:44:53 · 186 阅读 · 0 评论 -
十二、Mycat-分库分表
分库修改schema.xml文件 <?xml version="1.0"?><!DOCTYPE mycat:schema SYSTEM "schema.dtd"><mycat:schema xmlns:mycat="http://io.mycat/"> <schema name="TESTDB" checkSQLschema="fals...原创 2020-03-09 00:07:37 · 155 阅读 · 0 评论 -
十一、Mycat-安装-读写分离
先搭建MySQL的主从复制 Mycat是阿里的开源框架 Mycat可以干什么: 数据库中间件 读写分离 数据分片(垂直、水平、垂直+水平) 多数据源整合(任何关系型非关系型数据库都可以整合) 原理:拦截 二...原创 2020-03-08 19:36:33 · 227 阅读 · 0 评论 -
十、mysql优化-主从复制
数据库: 自己本地准备了两个数据库,一个windows数据库做主机,虚拟机linux数据库做从机。 配置主、从数据库 windows主机my.ini文件主机id=1,在liunx的世界里1最大 server-id=1 二进制日志文件 注意:最后结尾的不是文件夹,是文件前缀名称,二进制日志文件名必须这么写 log-bin=D:/mysql-window...原创 2020-03-07 21:04:13 · 199 阅读 · 0 评论 -
九、mysql优化-锁
MyISAM存储引擎表锁 表读锁 读锁大家都可读,不可写 表写锁 写锁大家不可写不可读 表锁分析 查看当前表锁状态mysql> show open tables;+--------------------+----------------------------------------------+...原创 2020-03-07 11:28:21 · 185 阅读 · 0 评论 -
八、mysql优化-order by-慢查询分析
查询优化 永远是小表驱动大表:in 和exist 哪个效率搞?不能一概而论,当in后面跟的子查询比主查询少,in的效率高。当子查询比主查询数据多的时候用exist效率高。 order by 尽量使用index排序,避免filesort排序 当排序字段是两个或者多个索引时候,如果一个升序一个降序则会出现filesort 要尽可能的使用index排序,遵循最左原则,ord...原创 2020-03-06 11:25:37 · 428 阅读 · 0 评论 -
七、mysql优化-索引案例
单表:索引不可被打断比如where中出现范围性查询 select * from user where id = 1 and age > 10 order by salsy; 若创建id_age_salsy三者的复合索引此时age这个条件会把索引打断,因此应该建立id_salsy两者的复合索引。 两张表:left join 索引加右表 right join 索引加...原创 2020-03-05 20:23:21 · 154 阅读 · 0 评论 -
六、mysql优化-explain执行计划
什么是explainexplain可以模拟优化器执行sql查询语句,知道mysql是如何处理查询语句,分析查询语句或者表结构性能瓶颈。用法:explain +sql各字段解释: explain select * from user;+----+-------------+-------+------+---------------+------+---------+----...原创 2020-03-05 09:31:16 · 162 阅读 · 0 评论