
mysql
mameng1998
学习是前进的唯一动力
展开
-
分库分表的计算
2 根据基本sql,获取分库分表后的sql。1 定义基本sql、常量。原创 2023-03-30 19:58:24 · 151 阅读 · 0 评论 -
Archery 一站式的 SQL 审核查询平台
1 官网2 安装3 源码。原创 2022-11-17 15:43:13 · 350 阅读 · 0 评论 -
MySQL中的重做日志(redo log),回滚日志(undo log),以及二进制日志(binlog)的作用及生成时机
保存的是内存中修改的数据,用于数据库宕机后数据的恢复:事务已经提交,但数据还没有刷新到磁盘,这是数据库如果宕机,可以借助redo log来恢复数据。事务开始之后(由于事务两阶段提交的原因,redo log会在事务执行的过程中产生)保存的是事务提交之后的一系列SQL语句,用于主从复制、数据恢复。保存的是当前事务上一版本的数据,用于事务回滚数据、MVCC。原创 2022-09-25 00:52:11 · 1312 阅读 · 0 评论 -
分库分表实践
大众点评订单系统分库分表实践 - 美团技术团队原创 2022-02-15 20:44:15 · 365 阅读 · 0 评论 -
mysql查询时offset过大影响性能的原因和优化
1 问题现状起初我们采用最为简单的offset+limit分页查询方式,伪代码具体如下:List<Student> students = new ArrayList<>();int limit = n;int offset = 0;do { students = SELECT * FROM [table] WHERE status = [status] AND gradeId = [id] LIMIT [limit] OFFSET [offset]; push原创 2022-02-15 20:04:36 · 2904 阅读 · 0 评论 -
如何抓取mysql建立连接的网络包
使用"tcpdump -i bond0 -nn -tttt port 4490"这个linux命令参考:tcpdump参数解析及使用详解_风叶-优快云博客_tcpdump原创 2021-11-22 22:31:57 · 566 阅读 · 0 评论 -
线程池线程数量和数据库连接池大小设置
理论上,线程数量设置为CPU核数时,并且线程没有等待的情况下,CPU几乎不会发生线程上下文切换,这个时候程序的执行效率是最高的。实际情况下,对于一个请求/响应模型的服务,并发线程数设置为CPU核数N倍时性能最佳。这个N取决于业务逻辑的执行时间、线程等待时间等因素,N的大致的经验值范围是[2, 10]。使用异步模型编写微服务,配合异步IO或者IO多路复用,可以有效的避免线程等待,用少量的线程处理大量并发请求,大幅减少线程上下文切换的开销,从而达到提升服务总体性能的效果。数据库连接池大小 = (cp原创 2021-11-15 22:40:57 · 2270 阅读 · 0 评论 -
【java】list分批插入数据库
service.java部分代码:import com.google.common.collect.Lists;@Transactional(rollbackFor = Exception.class)public void batchInsert(List<Student> students) { if (CollectionUtils.isEmpty(students)) { return; } Lists.partition(stude原创 2021-11-09 19:39:05 · 2032 阅读 · 0 评论 -
多版本并发控制(MVCC)原理
1 mysql的日志机制1.1 redo log(重做日志)1、redo log是InnoDB存储引擎层的日志2、记录的是数据修改后的值,不管事务是否提交都会记录下来3、先写日志,再写磁盘1.2 undo log(回滚日志)1、保存事务发生之前的数据版本2、可以用于...原创 2021-10-25 15:52:13 · 548 阅读 · 0 评论 -
如何查看、设置mysql的事务隔离级别
我们知道mysql数据库的事务满足ACID的特性,其中I为隔离性,而隔离性又有四种隔离级别:Read Uncommitted(读取未提交内容)Read Committed(读取提交内容)Repeatable Read(可重读)Serializable(可串行化)如何查看mysql数据库版本:select version();如何查看mysql中的事务隔离级别:查看系统隔离级别:select @@global.tx_isolation;查看会话隔离级别(5.0以上版本):se原创 2021-10-19 22:14:28 · 17017 阅读 · 1 评论 -
mysql中in和exits的区别及使用
我们以A、B表为例,两表通过 id 字段进行关联。1、当 B 表的数据集小于 A 表时,用 in 优化 exist;使用 in ,两表执行顺序是先查 B 表,再查 A 表select * from A where id in (select id from B)2、当 A 表的数据集小于 B 表时,用 exist 优化 in;使用 exists,两表执行顺序是先查 A 表,再查 B 表select * from A where exists (select 1 from B where B.id原创 2021-02-22 20:28:55 · 1372 阅读 · 0 评论 -
Mysql中explain各字段的解释
explain的用法:explain select * from gateway_apps;返回结果:下面对上面截图中的字段一一解释:1、id:select 查询序列号。id相同,执行顺序由上至下;id不同,id值越大优先级越高,越先被执行。2、select_type:查询数据的操作类型,其值如下:simple:简单查询,不包含子查询或 unionprimary:包含复杂的子查询,最外层查询标记为该值subquery:在 select 或 where 包含子查询,被标记为该值deri原创 2021-02-22 19:17:06 · 1830 阅读 · 2 评论 -
mysql批量插入数据
首先创建表:CREATE TABLE `student` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(255) COLLATE utf8mb4_bin NOT NULL, `age` int(11) NOT NULL, `class_id` bigint(20) NOT NULL, PRIMARY KEY (`id`), KEY `indx_class_id` (`class_id`)) ENGINE=Inn原创 2020-12-01 19:14:15 · 242 阅读 · 0 评论 -
CentOS7 yum方法安装MySQL5.7并开启root用户远程连接
1 下载并安装mysql1.1 下载并安装MySQL官方的 Yum Repository[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm1.2 下载并安装MySQL的rpm[root@localhost ~]# yum -y install...原创 2020-04-17 23:38:48 · 499 阅读 · 0 评论 -
MySQL的垂直拆分和水平拆分
1 垂直拆分垂直拆分共有两种方案:1.1 第一种(表的业务)方案:把不同业务的数据库表放在不同的数据库服务器上,例如:把产品表和用户表放到一个server上,订单表单独放到一个server上。解决问题:表与表之间的io竞争。不解决问题:单表中数据量增长出现的压力。1.2 第二种(表的列)方案:把原来在一个表中的字段拆分成几个表,也就是:表的记录并不多,但是字段却很长,表占用空间很大,...转载 2019-04-25 17:01:02 · 513 阅读 · 0 评论 -
SQL删除重复数据只保留一条
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleName)来判断 select * from people wherepeopleName in (select peopleName from people group by peopleName having count(peopleName) > 1) 解释如下:select peopleName f转载 2017-10-22 17:33:30 · 311 阅读 · 0 评论 -
SQL实现对两个表的各一个字段的更新
一、表结构如下:1、user表:2、user_info表:二、需求如下:user表和user_info表由uid字段关联,通过一句sql把idCard为310876199808263456的user_info中的age字段和user中的age字段都改为22。UPDATE user_info ui INNER JOIN user u on ui.uid = u.uid SET ui.age = 22...原创 2018-07-15 19:33:41 · 2833 阅读 · 0 评论 -
linux下安装mysql
数据库mysql的Linux版本的安装过程就在下面了,请小伙伴们参考。一、环境准备实验环境:centos 7.5数据库版本:5.6.41二、 数据库安装2.1 安装部分包yum -y install numactl libaio*2.2 下载[root@localhost ~]# cd /usr/local[root@localhost local]# wge...原创 2018-09-18 19:33:48 · 159 阅读 · 0 评论 -
mysql压力(并发)测试--mysqlslap
[root@document-system bin]# mysqlslap -hlocalhost -uroot -proot -P3306 --concurrency=1000 --iterations=1 --auto-generate-sql --auto-generate-sql-load-type=mixed --auto-generate-sql-add-autoincrement ...原创 2018-09-18 21:18:58 · 4089 阅读 · 0 评论 -
mysql数据库定时备份--以及Using a password on the command line interface can be insecure的解决办法
一、备份脚本今天做MySQL数据库备份,在/home/dbback目录下的脚本文件bkDatabaseName.sh(DatabaseName为自己数据库的名字)中,所写的语句如下:#!/bin/bashmysqldump -uusername -ppassword DatabaseName | gzip > /home/backup/DatabaseName_$(date+%...原创 2018-09-20 15:04:09 · 7865 阅读 · 2 评论 -
docker安装mysql
一、查找Docker Hub上的mysql镜像[root@mz-01 docker]# docker search mysqlNAME DESCRIPTION STARS OFFICIAL ...转载 2018-09-21 17:08:45 · 242 阅读 · 0 评论 -
SpringBoot2.0.3+Mybatis+Mysql+druid实现读写分离+事务+切换数据源失败
mysql支持一主多从,即在写库的数据库发生变动时,会同步到所有从库,只是同步过程中,会有一定的延迟(除非业务中出现,立即写立即读,否则稍微的延迟是可以接收的)。 mysql的主从复制的配置参考:https://blog.youkuaiyun.com/ydyang1126/article/details/70174334 当数据库有主从之分了,那应用代码也应该读写...原创 2018-10-24 22:20:17 · 4343 阅读 · 1 评论 -
1045 Access denied for user 'root'@'111.203.45.3' (using password:YES)
这个问题产生的原因可能有几种情况,下面一一讲述。1. 密码输入错误这个是最常见的情况,只需要重新输入正确地密码即可。2. 用户不存在对于普通用户来说,这种情况很容易发生,但对于root用户,大家可以能会有疑问:不是应该默认就创建好了吗?在刚安装mysql时,系统会默认提供4种host下得root用户,如下图所示:这些root用户默认都没有密码,我们在使用时会根据需要来设...转载 2018-11-06 18:50:38 · 854 阅读 · 0 评论 -
mysql5.7主从复制
安装环境操作系统 :CentOS Linux release 7.5.1804 (Core)数据库版本:MySQL 5.7.24主机A:192.168.1.11 (Master)主机B:192.168.1.12 (Slave)在Centos下安装mysql参考:https://blog.youkuaiyun.com/mameng1988/article/details/82762666...转载 2018-11-13 11:38:51 · 195 阅读 · 0 评论 -
CentOS 7 无网安装配置MySQL 5.7
1 准备工作1.1 下载mysql安装包:下载地址:https://dev.mysql.com/downloads/mysql/1.2 查看自己的Linux系统版本[root@cdKey02 ~]# cat /etc/centos-releaseCentOS Linux release 7.5.1804 (Core)1. 3 下载相应的安装包1.4 准备依赖包(all)下面的五...转载 2018-11-13 17:22:27 · 362 阅读 · 0 评论 -
Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Could not find
主从复制进行配置的时候出现如下错误:Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'错误详情如下:mysql&gt; show slave status...转载 2018-11-16 17:21:06 · 4676 阅读 · 6 评论 -
mysql多实例
一台服务器上启动多个mysql。前提是已经安装好了mysql。位于/etc下的my3307.cnf的文件内容:socket=/var/lib/mysql3307/mysql3307.sockdatadir=/var/lib/mysql3307;log-error=/var/log/mysqld3307.logpid-file=/var/run/mysqld3307/mysqld3307...原创 2018-11-15 11:40:55 · 198 阅读 · 0 评论 -
mysql5.7创建新用户
1 查看mysql中的用户SELECT host,user,authentication_string from mysql.user;2 创建mysql用户CREATE user '用户名称'@'%' IDENTIFIED BY '用户密码';3 赋予mysql用户权限3.1 赋予mysql用户所有权限GRANT ALL PRIVILEGES ON *.* TO '用户名称'@'...转载 2019-02-11 14:24:58 · 961 阅读 · 0 评论 -
mysql数据库的数据类型
1 mysql数据类型之数值型tinyint --&amp;amp;amp;gt; 1字节(无符号:0~255),smallint --&amp;amp;amp;gt; 2字节 mediumint --&amp;amp;amp;gt; 3字节 int --&amp;amp;amp;gt; 4字节 bigint --&amp;amp;amp;gt; 8字节。2 mysql数据类型之浮点型3 mysql数据类型之字符转载 2019-03-16 00:04:01 · 158 阅读 · 0 评论 -
完全优化MySQL数据库性能的八大巧方法
1、选取最适用的字段属性MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很好的完成任务转载 2017-09-11 23:59:20 · 246 阅读 · 0 评论