详解MySQL主从复制实战 - 基于GTID的复制
摘要:基于GTID的复制 简介 基于GTID的复制是MySQL 5.6后新增的复制方式. GTID (global transaction identifier) 即全局事务ID, 保证了在每个在主库上提交的事务在集群中有一个唯一的ID。 在原来基于日志的复制中, 从库需要告知主库要从哪个偏移量进行增量同
阅读全文
posted @
2018-02-01 10:35
duanxz
阅读(1806)
推荐(0) 编辑
MySQL锁之三:MySQL的共享锁与排它锁编码演示
摘要:一、行锁之MySQL 使用SELECT ... FOR UPDATE 做事务写入前的确认 以MySQL 的InnoDB 为例,预设的Tansaction isolation level 为REPEATABLE READ。 在SELECT 的读取锁定主要分为两种方式: SELECT ... LOCK
阅读全文
posted @
2017-11-17 17:13
duanxz
阅读(1891)
推荐(0) 编辑
mysql查询优化之四:优化特定类型的查询
摘要:本文将介绍如何优化特定类型的查询。 1.优化count()查询count()聚合函数,以及如何优化使用了该函数的查询,很可能是mysql中最容易被误解的前10个话题之一 count() 是一个特殊的函数,有两种非常不同的作用。它可以统计某个列值的数量,也可以统计行数。统计列值 要求列值是非空的。(不
阅读全文
posted @
2017-08-31 15:31
duanxz
阅读(823)
推荐(1) 编辑
mysql查询优化之三:查询优化器提示(hint)
摘要:目录: 《MySQL中的两种临时表》--强制使用临时表 SQL_BUFFER_RESULT 《MySQL 多表关联更新及删除》 《mysql查询优化之三:查询优化器提示(hint)》 《MySQL锁之三:MySQL的共享锁与排它锁编码演示》 --for update 和 lock in share
阅读全文
posted @
2017-08-31 15:21
duanxz
阅读(5861)
推荐(0) 编辑
mysql查询优化之二:查询优化器的局限性
摘要:在《mysql查询优化之一:mysql查询优化常用方式》一文中列出了一些优化器常用的优化手段。查询优化器在提供这些特性的同时,也存在一定的局限性,这些局限性往往会随着MySQL版本的升级而得到改善,所以本文会列出一些常见的局限性,且不包含所有的。 MySQL的万能"嵌套循环"并不是对每种查询都是最优
阅读全文
posted @
2017-08-31 14:47
duanxz
阅读(1475)
推荐(0) 编辑
mysql查询优化之一:mysql查询优化常用方式
摘要:一、为什么查询速度会慢? 一个查询的生命周期大致可以按照顺序来看:从客户端,到服务器,然后在服务器上进行解析,生成执行计划,执行,并返回结果给客户端。其中在“执行”阶段包含了大量为了检索数据到存储引擎的调用以及调用后的数据处理,包括排序、分组。 查询速度慢的原因在于:某些不必要的额外操作,某些操作被
阅读全文
posted @
2017-08-30 18:25
duanxz
阅读(4231)
推荐(2) 编辑
mysql分区表之三:MySQL分区建索引,唯一索引
摘要:介绍 mysql分区后每个分区成了独立的文件,虽然从逻辑上还是一张表其实已经分成了多张独立的表,从“information_schema.INNODB_SYS_TABLES”系统表可以看到每个分区都存在独立的TABLE_ID,由于Innodb数据和索引都是保存在".ibd"文件当中(从INNODB_
阅读全文
posted @
2017-03-08 14:06
duanxz
阅读(15242)
推荐(0) 编辑
mysql分区表之一:分区原理和优缺点【转】
摘要:1.分区表的原理 分区表是由多个相关的底层表实现,这些底层表也是由句柄对象表示,所以我们也可以直接访问各个分区,存储引擎管理分区的各个底层表和管理普通表一样(所有的底层表都必须使用相同的存储引擎),分区表的索引只是在各个底层表上各自加上一个相同的索引,从存储引擎的角度来看,底层表和一个普通表没有任何
阅读全文
posted @
2017-03-08 12:31
duanxz
阅读(18220)
推荐(0) 编辑
mysql重复记录的查询删除方法
摘要:1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select peopleId from people group by peopleId having count (peopleId) > 1
阅读全文
posted @
2016-12-12 17:32
duanxz
阅读(489)
推荐(0) 编辑
innodb的锁、update单条记录的花费时间压测
摘要:观察innodb的锁时间,需要关注: mysqladmin extended-status -r -i 1 -uroot | grep "Innodb_row_lock_time" 或show status like '%lock%'; Innodb_row_lock_current_waits:当
阅读全文
posted @
2016-12-09 11:14
duanxz
阅读(650)
推荐(0) 编辑
MySQL运行原理与基础架构
摘要:1.MySQL 基础 MySQL 是一个开放源代码的关系数据库管理系统。原开发者为瑞典的 MySQL AB 公司,最早是在 2001 年 MySQL3.23 进入到管理员的视野并在之后获得广泛的应用。 2008 年 MySQL 公司被 Sun 公司收购并发布了首个收购之后的版本 MySQL5.1 ,
阅读全文
posted @
2016-04-26 11:09
duanxz
阅读(5470)
推荐(0) 编辑
MySQL运算符之 <=>
摘要:问题 : 我在看以前的一个开发者的代码时看到 在这个查询语句中 <=>符号是什么意思啊?是不是和 =号是一样啊?还是一个语法错误啊?但是没有显示任何错误或者异常。我已经知道了mysql中的 <> = !=等符号。 最佳回答 : 像常规的=运算符一样,两个值进行比较,结果是0(不等于)或1(相等);换
阅读全文
posted @
2016-03-18 14:42
duanxz
阅读(7515)
推荐(4) 编辑
mysql基础语法之(全文索引)
摘要:1.概要 InnoDB引擎对FULLTEXT索引的支持是MySQL5.6新引入的特性,之前只有MyISAM引擎支持FULLTEXT索引。对于FULLTEXT索引的内容可以使用MATCH()…AGAINST语法进行查询。 为了在InnoDB驱动的表中使用FULLTEXT索引MySQL5.6引入了一些新
阅读全文
posted @
2016-03-14 17:30
duanxz
阅读(5493)
推荐(0) 编辑
MySQL锁之二:锁相关的配置参数
摘要:锁相关的配置参数: 一、innodb_rollback_on_timeout变量 innodb_rollback_on_timeout是mysql锁超时后的回滚机制,如下: innodb_rollback_on_timeout为OFF:如果事务因为加锁超时,相当于回滚到上一条语句。但是报错后,事务还
阅读全文
posted @
2016-03-12 19:19
duanxz
阅读(2373)
推荐(0) 编辑
mysql索引之五:多列索引
摘要:索引的三星原则 1.索引将相关的记录放到一起,则获得一星 2.如果索引中的数据顺序和查找中的排列顺序一致则获得二星 3.如果索引中的列包含了查询中的需要的全部列则获得三星 多列索引 1.1、多个单列索引 很多人对多列索引的理解都不够。一个常见的错误就是,为每个列建立独立的索引,或者按照错误的顺序创建
阅读全文
posted @
2016-03-05 14:07
duanxz
阅读(11413)
推荐(0) 编辑
mysql索引之四:复合索引之最左前缀原理,索引选择性,索引优化策略之前缀索引
摘要:高效使用索引的首要条件是知道什么样的查询会使用到索引,这个问题和B+Tree中的“最左前缀原理”有关,下面通过例子说明最左前缀原理。 一、最左前缀索引 这里先说一下联合索引的概念。MySQL中的索引可以以一定顺序引用多个列,这种索引叫做复合(联合)索引,一般的,一个联合索引是一个有序元组<a1, a
阅读全文
posted @
2016-03-05 14:06
duanxz
阅读(9668)
推荐(4) 编辑
mysql索引之三:索引使用注意规则(索引失效--存在索引但不使用索引)*
摘要:使用索引时,有以下一些技巧和注意事项: (1)越小的数据类型通常更好:越小的数据类型通常在磁盘、内存和CPU缓存中都需要更少的空间,处理起来更快。(2)简单的数据类型更好:整型数据比起字符,处理开销更小,因为字符串的比较更复杂。在MySQL中,应该用内置的日期和时间数据类型,而不是用字符串来存储时间
阅读全文
posted @
2016-03-05 13:51
duanxz
阅读(22667)
推荐(0) 编辑
无限级分类实现思路 (组织树的分级管理)
摘要:关于该问题,暂时自己还没有深入研究,在网上找到几种解决方案,各有优缺点。 在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点。但很遗憾,在MySQL的目前版本中还没有对应的功能。 在MySQL中如果是
阅读全文
posted @
2016-03-05 13:11
duanxz
阅读(11814)
推荐(2) 编辑
mysql命令之二:查看mysql版本的四种方法
摘要:1:在终端下:mysql -V。 以下是代码片段: [shengting@login ~]$ mysql -V mysql Ver 14.7 Distrib 4.1.10a, for redhat-linux-gnu (i686) 2:在mysql中:mysql> status; 以下是代码片段:
阅读全文
posted @
2016-03-05 13:07
duanxz
阅读(16375)
推荐(0) 编辑
SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
摘要:Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少。但我们在开发、测试过程中,经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到tabl
阅读全文
posted @
2016-02-22 22:00
duanxz
阅读(12199)
推荐(1) 编辑