mysql
足球带我奔跑
这个作者很懒,什么都没留下…
展开
-
mysql 使用乐观锁减库存
方法1UPDATE t_goodsSET num = num - #{buyNum} WHERE id = #{id} AND num - #{buyNum} >= 0 AND STATUS = 1方法2UPDATE t_goodsSET num = num - #{buyNum} WHERE id = #{id} AND num>=#{buy...原创 2019-10-08 09:14:49 · 1121 阅读 · 0 评论 -
从MySQL 5.5到5.7看复制的演进
概要:MySQL 5.5 支持单线程模式复制,MySQL 5.6 支持库级别的并行复制,MySQL 5.7 支持事务级别并行复制。结合这个主线我们可以来分析一下MySQL以及社区发展的一个前因后果。MySQL5.5,对于复制我们可以这样理解:主库有个 dump binlog thread 不停的 dump binlog,然后以event为单位发送给从库 的 iothread,iothread ...转载 2018-07-24 11:56:45 · 676 阅读 · 0 评论 -
mysql 返回inser 自增值
MYSQL的自增列一定要是有索引的列,设置种子值要在表的后面设置--设置自增列--sqlserverCREATE TABLE emp ( id INT IDENTITY(1, 1) )--mysql-- 设置自增ID从N开始CREATE TABLE empautoinc(ID INT PRIMARY KEY AUTO_INCREMENT) AUTO_...转载 2018-07-05 23:47:29 · 304 阅读 · 0 评论 -
mysql主从一致性校验修复工具[详解]:pt-table-checksum 和 pt-table-sync
mysql主从一致性校验修复工具[详解]:pt-table-checksum 和 pt-table-sync时间:2015年01月12日 | 分类:MySQL故障 | 评论:0 条 | 浏览:8,391 次在实际DB维护过程中,我们可能会遇到因为数据不一致而引起的主从中断,此时,我们应该如何处理呢!percona提供了一个很好的工具:percona-toolkit中的 pt-table-check...转载 2018-05-08 10:17:09 · 1477 阅读 · 0 评论 -
MySQL 5.5主从关于‘复制过滤’的深入探究
关于MySQL主从复制的过滤,例如通过binlog-ignore-db、replicate-do-db、replicate-wild-do-table等。如果不好好研究过这些过滤选项就用的话,是有可能造成主从数据不一致问题的。本文将参考MySQL-5.5官方文档并结合实验,和各位一起探讨下这里的各个设置。 以下内容参考5.5官方文档binlog_format(STATEMENT,ROW,MI...转载 2018-05-07 12:51:21 · 177 阅读 · 0 评论 -
binlog日志恢复
在日常运维工作中,对于mysql数据库的备份是至关重要的!数据库对于网站的重要性使得我们对mysql数据的管理不容有失!然后,是人总难免会犯错误,说不定哪天大脑短路了来个误操作把数据库给删除了,怎么办???下面,就mysql数据库误删除后的恢复方案进行说明。一、工作场景(1)MySQL数据库每晚12:00自动完全备份。(2)某天早上上班,9点的时候,一同事犯晕drop了一个数据库!(3)需要紧急...转载 2018-04-28 00:01:16 · 546 阅读 · 0 评论 -
binlog 缓存配置
Mysql二进制日志缓存参数: binlog_cache_size //事务缓存大小 binlog_cahce_use //事务缓存使用次数 binblog_cache_disk_use //事务缓存磁盘使用次数(内存缓存设置过小不够用时) binlog_stmt_cache_size //非事务语句缓存大小 binlog_stmt_cache_use ...转载 2018-04-27 23:17:47 · 1097 阅读 · 0 评论 -
生产环境注意设置binlog的过期清理expire_logs_days 和日志切换
设置expire_logs_days自动过期清理binlog生产上有一个比较小的系统,发现mysql占用空间较大,经排查发现是binlog比较多引起的查看binlog过期时间,设置的时间为90天,这个值默认是0天,也就是说不自动清理,可以根据生产情况修改,本例修改为7天mysql> show variables like 'expire_logs_days';+---------------...转载 2018-04-27 22:54:40 · 23303 阅读 · 1 评论 -
mysql中binlog_format模式与配置详解
mysql复制主要有三种方式:基于SQL语句的复制(statement-based replication, SBR),基于行的复制(row-based replication, RBR),混合模式复制(mixed-based replication, MBR)。对应的,binlog的格式也有三种:STATEMENT,ROW,MIXED。① STATEMENT模式(SBR)每一条会修改数据的sql...转载 2018-04-27 22:43:21 · 468 阅读 · 0 评论 -
mysql 事物隔离级别
本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB一、事务的基本要素(ACID) 1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。 2、一...转载 2018-10-24 10:48:38 · 110 阅读 · 0 评论 -
mysql order by 中文排序
【中文排序】mysql order by 中文排序1. 在MySQL中,我们经常会对一个字段进行排序查询,但进行中文排序和查找的时候,对汉字的排序和查找结果往往都是错误的。 这种情况在MySQL的很多版本中都存在。如果这个问题不解决,那么MySQL将无法实际处理中文。 出现这个问题的原因是因为MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的...转载 2018-11-10 11:49:54 · 6350 阅读 · 0 评论 -
全国省市区mysql数据
CREATE TABLE IF NOT EXISTS `T_Area` ( `areaId` INT(20) NOT NULL AUTO_INCREMENT COMMENT '地区Id', `areaCode` VARCHAR(50) NOT NULL COMMENT '地区编码', `areaName` VARCHAR(20) NOT NULL COMMENT '地区名'...转载 2018-12-28 14:41:57 · 852 阅读 · 1 评论 -
mysql进销存数据库脚本
CREATE TABLE supplier /*供应商表*/ ( supplier_id INT NOT NULL AUTO_INCREMENT, /* 供应商编号 ,主键 */ supplier_name VARCHAR(250) NOT NULL, /* 供应商名称 */ address ...原创 2019-08-22 15:41:09 · 1027 阅读 · 0 评论 -
mysql: [Warning] Using a password on the command line interface can be insecure 解决方法
1.最近把MySQL从5.5升到5.6以后,mysqldump居然不好用了,提示:代码如下复制代码[root@qttc ~]# /usr/local/mysql/bin/mysqldump-uroot -proot db > bak.sqlWarning: Using a passwordon the command line interface can be i...转载 2019-04-29 09:10:50 · 332208 阅读 · 8 评论 -
MySQL crc32 & crc64函数 提高字符串查询效率
一、概念:CRC全称为Cyclic Redundancy Check,又叫循环冗余校验。CRC32是CRC算法的一种,常用于校验网络上传输的文件。二:MySQL里如何利用CRC32来加快查询???CRC32的基本特征:#1.CRC32函数返回值的范围是0-4294967296(2的32次方减1)#2.相比MD5,CRC32函数很容易碰撞CRC32的使用场景:由上述两个基本特...转载 2019-03-14 11:03:43 · 2584 阅读 · 0 评论 -
Hash索引和BTree索引区别
索引是帮助mysql获取数据的数据结构。最常见的索引是Btree索引和Hash索引。不同的引擎对于索引有不同的支持:Innodb和MyISAM默认的索引是Btree索引;而Mermory默认的索引是Hash索引。我们在mysql中常用两种索引算法BTree和Hash,两种算法检索方式不一样,对查询的作用也不一样。 一、BTree BTree索引是最常用的mysql数据库索引算法,因为它...转载 2019-02-19 22:00:49 · 527 阅读 · 0 评论 -
mysql 函数+存储过程 生成百万记录
CREATE TABLE `vote_record` ( `id` INT (11) NOT NULL AUTO_INCREMENT, `user_id` VARCHAR (20) NOT NULL, `vote_id` INT (11) NOT NULL, `group_id` INT (11) NOT NULL, `create_ti...转载 2019-02-19 10:51:21 · 170 阅读 · 0 评论 -
mysql中更新时间和创建时间的自动更新
需求: 当新增记录的时候,mysql自动将系统的当前时间set到创建时间和更新时间这两个字段中。 当更新记录的时候,mysql只update更新时间字段的时间,而不修改创建时间字段对应的值。方案: 找到表中对应的创建时间和更新时间的字段,将其修改为下列代码所示。 创建时间字段`creat_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP...转载 2019-01-30 21:39:07 · 749 阅读 · 0 评论 -
mysql null 与 空字符串 ''
mysql中的空值,NULL,空字符 Mysql数据库是一个基于结构化数据的开源数据库。SQL语句是MySQL数据库中核心语言。不过在MySQL数据库中执行SQL语句,需要小心两个陷阱。 陷阱一:空值不一定为空 空值是一个比较特殊的字段。在MySQL数据库中,在不同的情形下,空值往往代表不同的含义。这是MySQL数据库的一种特性。如在普通的字段中(字符型的数据),空值就是表示空值...转载 2018-12-19 10:43:44 · 895 阅读 · 0 评论 -
mysql mysql的innodb_flush_log_at_trx_commit 参数对性能的影响
innodb_flush_log_at_trx_commit和sync_binlog是MySQL innodb引擎的两个重要的参数,其中innodb_flush_log_at_trx_commit是将事务日志从innodb log buffer写入到redo log中,sync_binlog是将二进制日志文件刷新到磁盘上。innodb事务日志redo,binlog逻辑过程如下:1.事务写入redo...转载 2018-05-06 11:01:23 · 1965 阅读 · 0 评论 -
千万级,MySQL优化
作者:zhufeng链接:https://www.zhihu.com/question/19719997/answer/151576634来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。千万级,MySQL实际上确实不是什么压力,InnoDB的存储引擎,使用的是B+树存储结构,千万级的数据量,基本也就是三到四层的搜索,如果有合适的索引,性能基本也不是问题。但经常出现的情...转载 2018-04-27 17:27:06 · 137 阅读 · 0 评论 -
InnoDB缓冲池
一、InnoDB缓冲池用户对数据库的最基本要求就是能高效的读取和存储数据,但是读写数据都涉及到与低速的设备交互,为了弥补两者之间的速度差异,所有数据库都有缓存池,用来管理相应的数据页,提高数据库的效率,当然也因为引入了这一中间层,数据库对内存的管理变得相对比较复杂。InnoDB维护一个称为缓冲池的内存存储区域 ,主要用来存储访问过的数据页面,它就是一块连续的内存,通过一定的算法可以使这块内存得到有...转载 2018-04-03 11:29:07 · 1642 阅读 · 0 评论 -
mysql 单表一千六百万分页
SELECT empno,ename FROM emp WHERE empno BETWEEN 10000000 AND 10000020; 0.003秒SELECT empno,ename FROM emp WHERE empno >10000000 LIMIT 20; 0.03秒原创 2018-03-27 21:11:11 · 166 阅读 · 0 评论 -
mysql like %keyword%不走索引替代方法
在使用msyql进行模糊查询的时候,很自然的会用到like语句,通常情况下,在数据量小的时候,不容易看出查询的效率,但在数据量达到百万级,千万级的时候,查询的效率就很容易显现出来。这个时候查询的效率就显得很重要! 一般情况下like模糊查询的写法为(field已建立索引):SELECT `column` FROM `table` WHERE `field` like '%keyword%';上面的...转载 2018-03-22 12:23:56 · 23739 阅读 · 11 评论 -
mysql 开启自定义函数功能
在使用MySQL数据库时,有时会遇到MySQL函数不能创建的情况。下面就教您一个解决MySQL函数不能创建问题的方法,供您借鉴参考。案例一:目前在项目中,执行创建mysql的函数出错,mysql 创建函数出错信息如下:Error Code: 1227. Access denied; you need (at least one of) the SUPER privilege(s) for this...转载 2018-03-26 15:37:56 · 4125 阅读 · 0 评论 -
mysql 优化
作者:mysqlops链接:https://www.zhihu.com/question/19719997/answer/12753954来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。如何设计或优化千万级别的大表?此外无其他信息,个人觉得这个话题有点范,就只好简单说下该如何做,对于一个存储设计,必须考虑业务特点,收集的信息如下:1.数据的容量:1-3年内会大概多少条...转载 2018-03-26 11:27:17 · 121 阅读 · 0 评论 -
mysql 取消优化器的自动选择表链接顺序(STRAIGHT_JOIN)
通过「SHOW FULL PROCESSLIST」语句很容易就能查到问题SQL,如下:?123456SELECT post.*FROM postINNER JOIN post_tag ON post.id = post_tag.post_idWHERE post.status = 1 AND post_tag.tag_id = 123ORDER BY post.created DESCLIMIT ...转载 2018-03-30 18:57:37 · 639 阅读 · 0 评论 -
mysql exists 和 in的效率比较
这条语句适用于a表比b表大的情况select * from ecs_goods a where cat_id in(select cat_id from ecs_category); 这条语句适用于b表比a表大的情况select * from ecs_goods a where EXISTS(select cat_id from ecs_category b where a.cat_id = b....转载 2018-03-30 17:11:03 · 148 阅读 · 0 评论 -
mysql 5.7 忘记密码
操作系统为centos7 641、修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1这一行配置让 mysqld 启动时不对密码进行验证2、重启 mysqld 服务:systemctl restart mysqld3、使用 root 用户登录到 mysql:mysql -u root 4、切换到mysql数据库,更新 user 表:update...转载 2018-02-25 10:39:58 · 158 阅读 · 0 评论 -
使用mysql_secure_installation时出现ERROR 2002 (HY000): Can't connect to local MySQL server through socket
mysql 5.7中mysql_secure_installation 可以使用--socket 参数指定socket文件位置了mysql在修改data_dir之后,运行mysql_secure_installation会报如下错误ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mys...转载 2018-04-12 01:21:58 · 3135 阅读 · 1 评论 -
MySQL5.7主主复制配置
MySQL5.7主主复制配置主机1IP:192.168.1.2主机2IP:192.168.1.4一、首先安装MySQL 5.71、卸载两台主机系统中已经有的mysql相关软件包rpm -qa | grep -i mysqlyum remove mysql(相关软件包名称) -y2、分别在两台主机系统中执行以下命令在http://dev.mysql.com/downloads/repo/yum/站点...转载 2018-04-12 12:07:26 · 156 阅读 · 0 评论 -
innodb_flush_log_at_trx_commit和sync_binlog binlog日志写入策略
innodb_flush_log_at_trx_commit和sync_binlog 两个参数是控制MySQL 磁盘写入策略以及数据安全性的关键参数。本文从参数含义,性能,安全角度阐述两个参数为不同的值时对db 性能,数据的影响.一 参数意义innodb_flush_log_at_trx_commit如果innodb_flush_log_at_trx_commit设置为0,log buffer将每...转载 2018-04-19 11:23:18 · 214 阅读 · 0 评论 -
加速mysql备份和恢复
链接:https://www.zhihu.com/question/20334428/answer/110981915著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。使用mysqldump备份时一般会会加上--single-transaction参数,这里假设你是加了这个参数。一 加速备份1 加了single-transaction参数 备份时 需要先flush table w...转载 2018-04-27 16:18:43 · 678 阅读 · 0 评论 -
使用mysqladmin ext了解MySQL运行状态
使用mysqladmin ext了解MySQL运行状态摘要: 1. 使用-r/-i参数 使用mysqladmin extended-status命令可以获得所有MySQL性能指标,即show global status的输出,不过,因为多数这些指标都是累计值,如果想了解当前的状态,则需要进行一次差值计算,这就是mysqladmin extended-status的一个额外功能,非常实用。1. 使用...转载 2018-04-27 15:15:03 · 487 阅读 · 0 评论 -
mysqlbinlog命令使用
------------------binlog相关信息------------------------------------查看binlog日志选项和存储位置:mysql> show variables like 'log_%'; 1.查看所有binlog日志列表 mysql> show master logs; 或 show binary logs;...转载 2018-04-26 11:56:16 · 3665 阅读 · 0 评论 -
MYSQL sync_relay_log对I/O thread的影响分析
搭建好的一套从库,发现延迟很高,一直追不上,从库的bin_log没开,flush_log_at_trx_commit设置为0,简化的状态如下:mysql> show slave status \G*************************** 1. row *************************** Slave_IO_State: Queuei...转载 2018-05-04 09:43:44 · 499 阅读 · 0 评论 -
关于binlog和relay log的rotate机制:
Binary Log rotate机制:?Rotate:每一条binary log写入完成后,都会判断当前文件是否超过 max_binlog_size(默认1g),如果超过则自动生成一个binlog file?Delete:expire-logs-days 只在 实例启动时 和 flush logs 时以及文件文件是否超过 max_binlog_size时判断是否有过期的binlog文件,如果文件...转载 2018-05-04 08:58:31 · 2245 阅读 · 1 评论 -
binlog事件类型详解
MySQL binlog记录的所有操作实际上都有对应的事件类型的,譬如STATEMENT格式中的DML操作对应的是QUERY_EVENT类型,ROW格式下的DML操作对应的是ROWS_EVENT类型。首先,看看源码中定义的事件类型源码位置:mysql-5.7.14/libbinlogevents/include/binlog_event.h?1234567891011121314151617181...转载 2018-04-26 10:41:37 · 810 阅读 · 0 评论 -
MySQL 5.7贴心参数之binlog_row_image
MySQL 5.7贴心参数之binlog_row_image相信大家都了解mysql binlog的格式,那就是有三种,分别是STATEMENT,MiXED,ROW。各有优劣,具体的请大家自行查阅资料。在MySQL 5.7版本以前,虽然ROW格式有各种各样的好处。1. 比如加快从库重放日志;ROW直接调用mysql的存储引擎接口(handler API) 来执行行的插入、删除和更新,完全跳过了my...转载 2018-04-25 11:38:37 · 467 阅读 · 0 评论 -
myslq二进制文件
本文出处:http://www.cnblogs.com/wy123/p/7182356.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错误进行修正或补充,无他) 今天无意中发现了一个云栖社区举行的MySQL“第一季:挑战玄惭之 慢SQL性能优化赛”,在测试服务器上执行其测试脚本写入数据的时候报错提示如下,Multi-statement...转载 2018-04-25 10:48:59 · 192 阅读 · 0 评论