随笔分类 -  数据库

MySQL5.6在线DDL不锁表(在线添加字段)
摘要:解答你也看一下MySQL5.6在线DDL不锁表,现在我有一张1亿的表,需要增加一个字段,假如我让你去增加这个字段,你应该注意什么,具体怎么操作? 操作如下:1.注意磁盘空间(临时表目录 参数 tmpdir ,因为需要创建临时表使用 algorithm=default,inplace,copy cop 阅读全文

posted @ 2019-03-19 12:10 ExplorerMan 阅读(551) 评论(0) 推荐(0)

mysql的mvcc(多版本并发控制)
摘要:我们知道,mysql的innodb采用的是行锁,而且采用了多版本并发控制来提高读操作的性能。 什么是多版本并发控制呢 ?其实就是在每一行记录的后面增加两个隐藏列,记录创建版本号和删除版本号, 而每一个事务在启动的时候,都有一个唯一的递增的版本号。 1、在插入操作时 : 记录的创建版本号就是事务版本号 阅读全文

posted @ 2019-03-12 21:32 ExplorerMan 阅读(150) 评论(0) 推荐(0)

mysql 之mvcc多版本控制
摘要:MVCC是multiversion concurrency control的缩写,提供MySQL事物隔离级别下无锁读,例如一个事物在执行update等修改数据的sql,并未提交时其他事物进行数据读取是不影响的,而且读取内容为数据变更之前的数据。 mvcc多本版快照由innodb的rollback s 阅读全文

posted @ 2019-03-12 21:26 ExplorerMan 阅读(230) 评论(0) 推荐(0)

MySQL表类型MyISAM/InnoDB的区别(解决事务不回滚的问题)(转)
摘要:本文参考: http://mysqlpub.com/thread-5383-1-1.html http://blog.csdn.net/c466254931/article/details/53463596 有很多是转载合并过来。 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传 阅读全文

posted @ 2019-03-06 15:44 ExplorerMan 阅读(209) 评论(0) 推荐(0)

MySQL的innoDB锁机制以及死锁处理
摘要:MySQL的nnoDB锁机制 InnoDB与MyISAM的最大不同有两点:一是支持事务(TRANSACTION);二是采用了行级锁。行级锁与表级锁本来就有许多不同之处,innodb正常的select ID from table where id=1;不会上任何锁,接下来详细讨论InnoDB的锁问题; 阅读全文

posted @ 2019-03-06 15:42 ExplorerMan 阅读(390) 评论(0) 推荐(0)

mysql ON DUPLICATE KEY UPDATE重复插入时更新
摘要:mysql当插入重复时更新的方法: 第一种方法: 示例一:插入多条记录 假设有一个主键为 client_id 的 clients 表,可以使用下面的语句: 示例一:插入单条记录 使用 dual 做表名可以让你在 select 语句后面直接跟上要插入字段的值,即使这些值还不存在当前表中。 第二种方法: 阅读全文

posted @ 2019-03-05 23:33 ExplorerMan 阅读(806) 评论(0) 推荐(0)

INSERT 中ON DUPLICATE KEY UPDATE的使用
摘要:使用场景,在做全国各省ip访问统计时要将sparkStreaming的数据存在mysql中,按照一般设计,id,province,counts,time,这样就需要每次清空表,但是如果多分区的话就存在删除表的时候回出现后一个分区可能把前一个分区的数据删除掉,当然最好的办法是每次都只更新而不删除,但是 阅读全文

posted @ 2019-03-05 23:31 ExplorerMan 阅读(227) 评论(0) 推荐(0)

MySQL Geometry扩展在地理位置计算中的效率优势
摘要:由于在Geometry中,有相关自带函数和SPATIAL INDEX的性能优化,可以让某些位置计算的效率提升。以下是几种计算方法的效果对比。 1. 数据准备 首先创建一个数据表,这是一个店铺数据表,结构如下: 创建语句: CREATE TABLE `store_geometry` ( `id` in 阅读全文

posted @ 2019-02-20 18:03 ExplorerMan 阅读(359) 评论(0) 推荐(0)

MySQL中地理位置数据扩展geometry的使用心得
摘要:最近学习了些MySQL geometry数据存储和计算,在这里记录下。 1. 环境 geometry推荐在5.6版本以上使用,尽管大部分功能在5.5已经可用,除了距离计算函数st_distance等新增函数。 2. Geometry主要相关类 2.1 Geometry Geometry是所有此扩展中 阅读全文

posted @ 2019-02-20 18:00 ExplorerMan 阅读(898) 评论(0) 推荐(1)

mysql对GIS空间数据的支持,包括创建空间索引
摘要:注: 在最新发布的MySQL 5.7.4实验室版本中,InnoDB存储引擎新增了对于几何数据空间索引的支持。 在此之前,InnoDB将几何数据存储为BLOB(二进制大对象)数据,在空间数据上只能创建前缀索引,当涉及空间搜索时非常低效,尤其是在涉及复杂的几何数据时。在大多数情况下,获得结果的唯一方式是 阅读全文

posted @ 2019-02-20 17:31 ExplorerMan 阅读(364) 评论(0) 推荐(0)

Mysql-Proxy 读写分离的各种坑,特别是复制延迟时
摘要:延迟问题读写分离不能回避的问题之一就是延迟,可以考虑Google提供的SemiSyncReplicationDesign补丁。 端口问题MySQL-Proxy缺省使用的是4040端口,如果你想透明的把3306端口的请求转发给4040的话,那么可以: iptables -t nat -I PREROU 阅读全文

posted @ 2019-02-18 17:20 ExplorerMan 阅读(479) 评论(0) 推荐(0)

MySQL-Proxy 读写分离、同步延时问题解决方案
摘要:MySQL-Proxy 读写分离、同步延时问题解决方案 使用MySQL将读写请求转接到主从Server。 一 安装MySQL Proxy MySQL Proxy的二进制版非常方便,下载解压缩后即用。 解压缩的目录为: $mysql-proxy_installed_dir (这里为/usr/local 阅读全文

posted @ 2019-02-18 17:09 ExplorerMan 阅读(364) 评论(0) 推荐(0)

MySQL主从复制与主主复制
摘要:阅读目录 1、简介 2、环境说明 3、主从复制 3.1、MySQL 3.2、配置文件 3.3、开始构建主从复制 3.4、测试主从复制 4、MySql主主复制 4.1、实现原理 4.2、配置文件 4.3、开始构建主主复制 4.4、测试主主复制 5、注意事项 阅读目录 1、简介 2、环境说明 3、主从复 阅读全文

posted @ 2019-02-18 17:00 ExplorerMan 阅读(148) 评论(0) 推荐(0)

MySQL读写分离
摘要:阅读目录 1、简介 2、基本环境 3、配置主从复制 4、MySQL读写分离配置 4.1、安装lua 4.2、安装mysql-proxy 5、MySQL读写分离测试 1)、修改rw-splitting.lua文件 2)、修改完成后,启动mysql-proxy 3)、创建用于读写分离的数据库连接用户 4 阅读全文

posted @ 2019-02-18 16:28 ExplorerMan 阅读(204) 评论(0) 推荐(0)

Mysql-Proxy代理配置
摘要:一、Mysql-Proxy原理 Mysql-Proxy是一个处于你的client端和Mysql Server端之间的一个简单程序,它可以监测、分析和改变他们的通信。它使用灵活没有限制,常见的用途包括:负载平衡,故障、查询分析,查询过滤和修改等等。 Mysql -Proxy就是这么一个中间层代理,简单 阅读全文

posted @ 2019-02-18 16:27 ExplorerMan 阅读(9090) 评论(0) 推荐(0)

MySQL复合分区
摘要:到底还是开源软件,MySQL对复合分区的支持远远没有Oracle丰富。 在MySQL 5.6版本中,只支持RANGE和LIST的子分区,且子分区的类型只能为HASH和KEY。 譬如: 上述创建语句中,最外层是RANGE分区,分为3个区,里面是HASH子分区,分为2个区,这样,该表一共分了3*2=6个 阅读全文

posted @ 2019-02-18 14:51 ExplorerMan 阅读(752) 评论(0) 推荐(0)

MySQL基于时间字段进行分区的方案总结
摘要:MySQL支持的分区类型一共有四种:RANGE,LIST,HASH,KEY。其中,RANGE又可分为原生RANGE和RANGE COLUMNS,LIST分为原生LIST和LIST COLUMNS,HASH分为原生HASH和LINEAR HASH,KEY包含原生KEY和LINEAR HASH。关于这些 阅读全文

posted @ 2019-02-18 14:51 ExplorerMan 阅读(5226) 评论(0) 推荐(0)

MySQL分区表的管理~1
摘要:一、如何管理RANGE和LIST分区 以该分区表为例 1. 删除分区 注意:如果删掉了某分区,则该分区内的数据将全部丢失,不仅如此,在用show create table members\G;命令查看该表的创建语句时将无法看到被删除分区的任何信息。 对于RANGE分区来说,如果删除了p1分区,在插入 阅读全文

posted @ 2019-02-18 14:50 ExplorerMan 阅读(534) 评论(0) 推荐(0)

MySQL分区表的管理~2
摘要:一、维护分区 对于表的维护,我们一般有如下几种方式: CHECK TABLE, OPTIMIZE TABLE, ANALYZE TABLE和REPAIR TABLE。 而这几种方式,对于分区同样适用。下面,我们一一阐述各种的作用。 1. Rebuilding partitions 重建分区,它相当于 阅读全文

posted @ 2019-02-18 14:50 ExplorerMan 阅读(344) 评论(0) 推荐(0)

MySQL分区总结
摘要:MySQL支持RANGE,LIST,HASH和KEY四种分区。其中,每个分区又都有一种特殊的类型。对于RANGE分区,有RANGE COLUMNS分区。对于LIST分区,有LIST COLUMNS分区。对于HASH分区,有LINEAR HASH分区。对于KEY分区,有LINEAR KEY分区。具体如 阅读全文

posted @ 2019-02-18 11:41 ExplorerMan 阅读(2920) 评论(0) 推荐(1)

导航