随笔分类 -  Mysql

MySQL--REPLACE INTO与自增
摘要:## ##测试环境:MySQL版本:MySQL 5.7.19复制模式:ROW## ## 执行下面操作: 发生报错: ERROR 1062 (23000): Duplicate entry '101' for key 'PRIMARY' ## ##原因分析:1、在MySQL中,只有INSERT语句才能 阅读全文

posted @ 2018-11-28 18:17 笑东风 阅读(1788) 评论(0) 推荐(0) 编辑

MySQL--更新自增列的潜在风险
摘要:## ##测试环境:MySQL版本:MySQL 5.7.19复制模式:ROW## ## 执行下面语句: 执行报错: ERROR 1062 (23000): Duplicate entry '2' for key 'PRIMARY' ## ##原因分析:1、第一次INSERT语句,获得自增值为1。2、 阅读全文

posted @ 2018-11-28 18:13 笑东风 阅读(865) 评论(0) 推荐(0) 编辑

MySQL--MHA与GTID
摘要:## ## MySQL 5.6版本引入GTID来解决主从切换时BINLOG位置点难定位的问题,MHA从0.56版本开始支持基于GTID的复制,在发生故障切换时判断群集是否能采用基于GTID的方式进行切换 ## ##基于GTID进行故障切换的条件:1、所有节点开启GTID模式,设置gtid_mode= 阅读全文

posted @ 2018-07-09 17:20 笑东风 阅读(2385) 评论(0) 推荐(1) 编辑

MySQL--BNL/ICP/MRR/BKA
摘要:# ##MySQL关联查询算法:BNL(Block Nested-Loop)ICP(Index Condition Pushdown)MRR(Multi-Range Read)BKA(Batched Key Access) # ##BNL(Block Nested-Loop)场景:假设TB1和TB2 阅读全文

posted @ 2018-06-27 23:58 笑东风 阅读(944) 评论(0) 推荐(0) 编辑

MySQL优化--NOT EXISTS和LEFT JOIN方式差异
摘要:在MySQL中,我们可以将NOT EXISTS语句转换为LEFT JOIN语句来进行优化,哪为什么会有性能提升呢? 使用NOT EXISTS方式SQL为: 而使用LEFT JOIN方式SQL为: 从查询效果来看,NOT EXISTS 方式耗时29.38秒,而LEFT JOIN方式耗时1.20秒,性能 阅读全文

posted @ 2018-06-11 16:03 笑东风 阅读(10808) 评论(2) 推荐(1) 编辑

MySQL--binlog和relay log的生成和删除
摘要:## ## binlog文件生成:在每条二进制日志写入到日志文件后,会判断该文件是否超过max_binlog_size,如果超过则生成一个新的binlog relay log文件生成:每从Master fetch一个events后,判断当前文件是否超过max_relay_log_size 如果超过则 阅读全文

posted @ 2018-05-22 21:30 笑东风 阅读(1768) 评论(2) 推荐(0) 编辑

MySQL 5.7并发复制和mysqldump相互阻塞引起的复制延迟
摘要:本来MySQL BINLOG和mysqldump命令属于八竿子打不着的两个事物,但在最近故障排查中,发现主库和从库已经存在很严重的复制延迟,但从库上显示slave_behind_master值为0,复制SQL线程与备份线程之间相互阻塞,但未报死锁。 在从库上执行SHOW PROCESSLIST发现复 阅读全文

posted @ 2018-03-26 23:51 笑东风 阅读(1778) 评论(1) 推荐(0) 编辑

MySQL--REPALCE INTO操作
摘要:REPLACE INTO语法是MySQL数据库独特的扩展语法,可以提供“不存在即插入,存在即更新”的操作,MySQL官方文档解析其算法为: 1、尝试进行INSER 操作 2、如果INSERT 失败,则按照重复的键进行删除,再进行插入 但通过在MySQL 5.7.19上进行测试,查看其生成ROW格式的 阅读全文

posted @ 2018-02-06 16:21 笑东风 阅读(789) 评论(0) 推荐(0) 编辑

MySQL--REPEATABLE-READ隔离级别下读取到的“重复数据”
摘要:在MySQL中,使用MVCC来实现REPEATABLE-READ隔离级别,由于SELECT操作不会对数据加锁,其他回话可以修改当前回话所读取过的数据而不会被阻塞,因此读写不冲突。 在MVCC并发控制中,读操作可以分成两类:快照读 (snapshot read)与当前读 (current read)。 阅读全文

posted @ 2017-11-16 21:54 笑东风 阅读(3543) 评论(0) 推荐(0) 编辑

MySQL锁学习之UPDATE
摘要:## ## 学MySQL也蛮长时间了,可一直停留在能干活但是不精通的状态,而且很多MySQL知识点受SQL Server的影响存在理解偏差,只能且行且努力吧! 因为不懂源码,而MySQL也没提供很好的视图来验证以下观点,因此只能说说测试过程和实验结果,请各位报怀疑眼光阅读 ## ## 问题点: 当M 阅读全文

posted @ 2017-11-13 06:23 笑东风 阅读(3252) 评论(0) 推荐(0) 编辑

MySQL--当查询遇到隐藏字符
摘要:事件起因: 在将一些EXCEL维护的数据导入MySQL中维护过程中发现漏了一些数据,检查时发现看着相同的SQL返回的结果完全不同: 在SQLyog中看到的截图如: 两个SQL执行返回结果不同,其中一条SQL中WMS_REPORT1是键盘输入的,另一条SQL的WMS_REPORT1是从数据库中复制粘贴 阅读全文

posted @ 2017-10-06 19:17 笑东风 阅读(1573) 评论(0) 推荐(1) 编辑

MySQL --当AUTO_INCREMENT自增遇到0
摘要:熟悉SQL Server的DBA都知道,在SQL Server中如果想要显示制定自增值,除了在INSERT语句中显示写明自增列外,还需要使用SET IDENTITY_INSERT TB_NAME ON来告诉系统“我要显示插入自增啦”,但到了MySQL,显示插入自增就变得很“自由”。 假设有表tb1, 阅读全文

posted @ 2017-10-02 20:58 笑东风 阅读(2601) 评论(0) 推荐(1) 编辑

MySQL--Percona-XtraDB-Cluster 5.6安装笔记
摘要:安装环境: 有三台干净的CentOS 6的服务器,IP配置为:192.168.166.169,192.168.166.170,192.168.166.171,准备搭建三节点的Percona XtraDB Cluster 相关安装包下载: https://www.percona.com/downloa 阅读全文

posted @ 2017-05-03 15:20 笑东风 阅读(736) 评论(0) 推荐(0) 编辑

MySQL--eq_range_index_dive_limit参数学习
摘要:官方文档如下描述:This variable indicates the number of equality ranges in an equality comparison condition when the optimizer should switch from using index d 阅读全文

posted @ 2017-03-20 09:34 笑东风 阅读(5364) 评论(2) 推荐(2) 编辑

MySQL--使用xtrabackup进行备份还原
摘要:使用rpm包安装xtrabackup 为备份操作创建MySQL账户。 ## xtrabackup备份创建备份用户CREATE USER 'backuper'@'localhost' IDENTIFIED BY 'backup@123';GRANT SELECT, RELOAD, PROCESS, S 阅读全文

posted @ 2016-11-18 18:16 笑东风 阅读(2263) 评论(1) 推荐(2) 编辑

MySQL--将MySQL数据导入到SQL Server
摘要:随着时代的进步,社会的发展,各种技术层出不穷五花八门乱七八糟数不胜数(写作文呢!!!) 不扯废话,简单而言,很多公司都会同时使用多种数据库,因此数据在不同数据库之间导入导出就成为一个让人蛋疼的问题,对于周期行的需求,可以开发专门的程序处理,但是对于偶尔不确定性的需求,就到了需要DBA献身的时候啦,当 阅读全文

posted @ 2016-11-02 12:15 笑东风 阅读(12128) 评论(10) 推荐(5) 编辑

python--同一mysql数据库下批量迁移数据
摘要:最近接手些mysql数据库维护,发现mysql在批量操作方面就是个渣渣啊,比起MS SQL SERVER简直就是“不可同日而语”。 咨询了下MySQL的高手,对于数据迁移这种问题,一种处理方式就是直接“一步到位” ,一次性将所有数据查询插入到另外一个表,然后再删除原表数据;另外一种处理方式就是使用p 阅读全文

posted @ 2016-10-11 13:27 笑东风 阅读(2589) 评论(0) 推荐(0) 编辑

InnoDB in Mysql
摘要:每个MyISAM表会被存储成三个文件,.frm文件存储表定义,.myd文件存储表数据,.myi文件存储索引数据,默认最多索引数为64,索引列为16,最大索引键长度1000字节。MyISAM支持三种存储格式:静态格式和动态格式以及压缩格式,可以在ALTER TABLE 中设置ROW_FORMAT={COMPRESS|DEFAULT},当表中不存在变长列时默认使用静态模式,有变长列时默认使用动态模式。在对表设置静态或动态模式时,会导致列在定长或变长中转换,如char和varchar的转换。InnoDB支持行级别的锁定和foreign key,InnoDB表中数据和索引存储在一个表空间中,而一个表空 阅读全文

posted @ 2012-12-14 18:54 笑东风 阅读(675) 评论(0) 推荐(0) 编辑

Store engine for Mysql
摘要:Mysql支持多种存储引擎,通过通用的接口实现来保证各引擎之间的语法一致性.在选用存储引擎时,需要考虑以下方面:并发性:某些应用程序比其他应用程序具有很多的颗粒级锁定要求(如行级锁定)。选择正确的锁定策略能够减少开销,并有助于整体性能的提升。它还包括对多种能力的支持,如多版本并发性控制或“快照”读取等。事务支持:并非所有的应用程序都需要事务,但对的确需要事务的应用程序来说,有着定义良好的需求,如ACID兼容等。引用完整性:通过DDDL定义的 外键,服务器需要强制保持关联数据库的引用完整性。物理存储:它包括各种各样的事项,从表和索引的总的页大小,到存储数据所需的格式,到物理磁盘。索引支持:不同的 阅读全文

posted @ 2012-12-14 15:03 笑东风 阅读(228) 评论(0) 推荐(0) 编辑

Mysql note 3
摘要:mysql可以缓存客户端提交的查询结果,如果随后收到相同查询且查询所涉及的表没有发生更新,服务器从查询缓冲中重新得到查询结果,而不再需要解析和执行查询。使用SHOW VARIABLES LIKE 'have_query_cache';来检查是否开启查询高速缓存可以在查询语句中使用查询高速缓冲选项SELECT SQL_CACHE id, name FROM customer;SELECT SQL_NO_CACHE id, name FROM customer;使用SET GLOBAL query_cache_size = 40000;来设置查询缓冲区大小 阅读全文

posted @ 2012-12-14 14:42 笑东风 阅读(182) 评论(0) 推荐(0) 编辑

导航

点击右上角即可分享
微信分享提示