MySQL中RESET SLAVE和RESET MASTER的区别】的更多相关文章

RESET SLAVE的语法如下: RESET SLAVE [ALL] [channel_option] channel_option: FOR CHANNEL channel 其中,channel_option主要是针对5.7.6引入的多源复制. RESET SLAVE 官方的解释如下 RESET SLAVE makes the slave forget its replication position in the master's binary log. This statement is…
mysql中的where和having子句的区别 having的用法 having字句可以让我们筛选成组后的各种数据,where字句在聚合前先筛选记录,也就是说作用在group by和having字句前.而 having子句在聚合后对组记录进行筛选. SQL实例: 一.显示每个地区的总人口数和总面积. SELECT region, SUM(population), SUM(area) FROM bbc GROUP BY region 先以region把返回记录分成多个组,这就是GROUP BY的…
三者空间占用方面: char:存储定长数据很方便,CHAR字段上的索引效率极高,可以有默认值,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间(自动用空格填充),且在检索的时候后面的空格会隐藏掉,所以检索出来的数据需要记得用strip()之类的函数去过滤空格.varchar:存储变长数据,但存储效率没有CHAR高.保存数据的时候,不进行空格自动填充,而且如果数据存在空格时,当值保存和检索时尾部的空格仍会保留.另外,varchar类型的实际长度是它的值的…
mysql中 REPLACE INTO 和 INSERT INTO 的区别 REPLACE INTO 和 INSERT INTO 功能类似,都是像表中插入数据,不同点在于:REPLACE INTO 首先尝试插入数据到表中: 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据. 否则,直接插入新数据. 要注意的是: 插入数据的表必须有主键或者是唯一索引!否则的话,REPLACE INTO 会直接插入数据,这将导致表中出现重复的数据. 除非表有一个PRIMARY…
这篇文章主要介绍了MySQL中TEXT与BLOB字段类型的区别,本文总结了6大区别,需要的朋友可以参考下   在MySQL中有两个字段类型容易让人感觉混淆,那就是TEXT与BLOB,特别是自己写博客程序的博主不知道改为自己的博客正文字段选择TEXT还是BLOB类型. 下面给出几点区别: 一.主要差别 TEXT与BLOB的主要差别就是BLOB保存二进制数据,TEXT保存字符数据.目前几乎所有博客内容里的图片都不是以二进制存储在数据库的,而是把图片上传到服务器然后正文里使用<img>标签引用,这样…
mysql中drop.truncate和delete的区别 (1)DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作. TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的.并且在删除的过程中不会激活与表有关的删除触发器.执行速度快. (2)表和索引所占空间. 当表被TRUNCATE 后,这个表和索引所占用的空间会恢复到初始大小, DELETE操作不会减少表或索引…
reset slave是各版本Mysql都有的功能,可以让slave忘记自己在master binary log中的复制位置. reset slave命令主要完成以下工作内容: -删除master.info和relay-log.info文件 -删除所有的relay log(包括还没有应用完的日志) -创建一个新的relay log文件 -将复制延迟选项 master_delay设置为0 reset slave不会修改gtid_executed.gtid_purged的值. 在执行reset sl…
1. 数据库事务ACID特性 数据库事务的4个特性: 原子性(Atomic): 事务中的多个操作,不可分割,要么都成功,要么都失败: All or Nothing. 一致性(Consistency): 事务操作之后, 数据库所处的状态和业务规则是一致的; 比如a,b账户相互转账之后,总金额不变: 隔离性(Isolation): 多个事务之间就像是串行执行一样,不相互影响; 持久性(Durability): 事务提交后被持久化到永久存储. 2. 隔离性 其中 隔离性 分为了四种: READ UNC…
mysql建表长度的限制 在mysql建表时,出现以下报错信息: 错误一:行大小过大,所使用的表这种类型的最大的行大小,不算BLOB类型,是65535.(这是我翻译的)    原因是MySQL在建表的时候有个限制:MySQL要求一个行的定义长度不能超过65535.具体的原因可以看: http://dev.mysql.com/doc/refman/5.1/en/silent-column-changes.html 单个字段如果大于65535,则转换为TEXT. 单行最大限制为65535,这里不包括…
在mysql中存在着各种utf8编码格式,如下表: 1)utf8_bin 2)utf8_general_ci 3)utf8_general_cs utf8_bin将字符串中的每一个字符用二进制数据存储,区分大小写. utf8_genera_ci不区分大小写,ci为case insensitive的缩写,即大小写不敏感. utf8_general_cs区分大小写,cs为case sensitive的缩写,即大小写敏感. 现在假设执行如下命令: create table test_bin ( nam…
在mysql中,筛选非空的时候经常会用到is not null和!=null,这两种方法单从字面上来看感觉是差不多的,其实如果去运行一下试试的话差别会很大!为什么会出现这种情况呢?null 表示什么也不是, 不能=.>.< … 所有的判断,结果都是false,所有只能用 is null进行判断.默认情况下,推荐使用 IS NOT NULL去判断,因为SQL默认情况下对!= Null的判断会永远返回0行,但没有语法错误.如果你一定想要使用!= Null来判断,需要加上这个语句:set ANSI_…
mysql中日期函数还是比较常用的.主要有NOW()和SYSDATE()两种,虽然都表示当前时间,但使用上有一点点区别. NOW()取的是语句开始执行的时间,SYSDATE()取的是动态的实时时间. 因为NOW()取自mysql的一个变量”TIMESTAMP”,而这个变量在语句开始执行的时候就设定好了,因此在整个语句执行过程中都不会变化. 执行下面这个例子就明白了: SELECT NOW(),SYSDATE(),SLEEP(3),NOW(),SYSDATE() 先查询了NOW()和SYSDATE…
MySQL中存在float,double等非标准数据类型,也有decimal这种标准数据类型. 其区别在于,float,double等非标准类型,在DB中保存的是近似值,而Decimal则以字符串的形式保存数值.float,double类型是可以存浮点数(即小数类型),但是float有个坏处,当你给定的数据是整数的时候,那么它就以整数给你处理.这样我们在存取货币值的时候自然遇到问题,我的default值为:0.00而实际存储是0,同样我存取货币为12.00,实际存储是12. 幸好mysql提供了…
MySQL中存在float,double等非标准数据类型,也有decimal这种标准数据类型. 其区别在于,float,double等非标准类型,在DB中保存的是近似值,而Decimal则以字符串的形式保存数值.float,double类型是可以存浮点数(即小数类型),但是float有个坏处,当你给定的数据是整数的时候,那么它就以整数给你处理.这样我们在存取货币值的时候自然遇到问题,我的default值为:0.00而实际存储是0,同样我存取货币为12.00,实际存储是12.幸好mysql提供了两…
Mysql中的truncate table和delete语句都可以删除表里面所有数据,但是在一些情况下有些不同! 例子: truncate table gag; (1)truncate table删除速度更快,,但truncate table删除后不记录mysql日志,不可以恢复数据.(谨慎使用) (2)如果没有外键关联,innodb执行truncate是先drop table(原始表),再创建一个跟原始表一样空表,速度要远远快于delete逐条删除行记录.(思考:删除百万级数据的时候是否可用t…
浅析MySQL中change与modify的区别   MySQL版本 show variables like 'version'; 表结构 desc student; 修改表 例如:修改表student的name字段,将varchar(10)修改为varchar(20)modifyalter table student modify name varchar(20); changealter table student change name name varchar(20); 修改列名 修改列…
区别 CHAR与VARCHAR类型类似,但它们保存和检索的方式不同.CHAR有固定的长度,而VARCHAR属于可变长的字符类型.它们最大长度和是否尾部空格被保留等方面也不同.在存储和检索过程中不进行大小写转换. 下面的表格显示了将各种字符串值保存到CHAR(4)和VARCHAR(4)列后的结果,说明了CHAR和VARCHAR之间的差别: 值 CHAR(4) 存储需求 VARCHAR(4) 存储需求 '' ' ' 4个字节 '' 1个字节 'ab' 'ab ' 4个字节 'ab' 3个字节 'ab…
set autocommit=0,当前session禁用自动提交事物,自此句执行以后,每个SQL语句或者语句块所在的事务都需要显示"commit"才能提交事务. start transaction 指的是启动一个新事务. 在默认的情况下,MySQL从自动提交(autocommit)模式运行,这种模式会在每条语句执行完毕后把它作出的修改立刻提交给数据库并使之永久化.事实上,这相当于把每一条语句都隐含地当做一个事务来执行.如果你想明确地执行事务,需要禁用自动提交模式并告诉MySQL你想让它…
最开始用MySQL Administrator建数据库的时候,表缺省是InnoDB类型,也就没有在意.后来用Access2MySQL导数据的时候发现只能导成 MyISAM类型的表,不知道这两种类型有什么区别,就去查了查.原来是MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持. MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能.这 样就可以根据数据表不同的用处是用不同的存储类型. 另外,My…
反引号,一般在ESC键的下方. 它是为了区分MYSQL的保留字与普通字符而引入的符号.举个例子:SELECT `select` FROM `test` WHERE select='字段值'在test表中,有个select字段,如果不用反引号,MYSQL将把select视为保留字而导致出错,所以,有MYSQL保留字作为字段的,必须加上反引号来区分. 引号一般用在字段的值,如果字段值是字符或字符串,则要加引号,如:select='字段值'不加反引号建的表不能包含MYSQL保留字,否则出错用普通引号,…
[1]int(3) 和 int(11)的区别(思维惯性认知错误) 这里的3或11代表的是存储在数据库中的具体的长度,总以为int(3)只能存储3个长度的数字,int(11)只会存储11个长度的数字. [2]Mysql基础知识 学习Mysql基本数据类型时,我们已知: 从声明字段是int类型的那一刻起,int类型的字段就是占四个字节,一个字节8位,也就是4*8=32位. 因此,可以表示的数字个数是2的32次方(2^32 = 4294 9672 96个数字) 而4294 9672 96个数字也就是[…
背景 许多使用MySQL的同学都会使用到varchar这个数据类型.初学者刚开始学习varchar时,一定记得varchar是个变长的类型这个知识点,所以很多初学者在设计表时,就会把varchar(X)的长度设置的非常长,目的也是为了保证以后有更长的数据存储时,能更好的兼容. 于是本来varchar(10)就可以满足当前的存储的长度需求了,改成了varchar(100). 那么疑问来了: 既然是变长类型,varchar(10)和varchar(100)有什么区别? 先举个例子:如果要存储'hel…
MyISAM存储引擎特点 不支持事务 表级锁定 读写相互阻塞,写入不能读,读时不能写 只缓存索引 不支持外键约束 不支持聚簇索引 读取数据较快,占用资源较少 不支持MVCC(多版本并发控制机制)高并发 崩溃恢复性较差 MySQL5.5前默认的数据库引擎 InooDB存储引擎特点 行级锁 支持事务,适合处理大量短期事务 读写阻塞与事务隔离级别相关 可缓存数据和索引 支持聚簇索引 崩溃恢复性更好 支持MVCC高并发 从MySQL5.5后支持全文索引 从MySQL5.5开始为默认的数据库引擎 区别 1…
简而言之.看格式,DATE 是 年月日YYYY-MM-DD,DATETIME 是 年月日时分秒YYYY-MM-DD HH:MM:SS,TIMESTAMP是 年月日时分秒YYYY-MM-DD HH:MM:SS. 然后就是区别,DATETIME支持范围:'1000-01-01 00:00:00'到'9999-12-31 23:59:59'TIMESTAMP支持范围:格式一样,但不能早于1970或晚于2037 Normal 0 7.8 磅 0 2 false false false EN-US ZH-…
int(N)中的N不是限制字段取值范围的,int的取值范围是固定的(0至4294967295)或(-2147483648至2147483647) 那么N这个值是为了在字段中的值不够时补零的,但是必须含有zerofill,例如 create table `type`(`id` int(8) zerofill unsigned NOT NULL,primary key(`id`))engine=InnoDB default charset=utf8; 如果插入8888,查看的数据应该为0000888…
count(*)返回行数的时候不管列中的值是不是null,在MyISAM表中,count(*)被优化,因为在MyISAM表中,行数被额外存储了,所以会很快,但是这个时候不能有where条件.innodb不会做类似的优化,因为在进行事务管理的时候,并发事务可能会看到不同的列值. 在MyISAM表中,如果第一列不是null值,那么count(1)被做了和count(*)一样的优化,count(col)就是根据列名检索非null的行,如果MyISAM知道col列非null,则count(col)会被优…
1.drop:能对table和view 用法:  drop table [is exists] 表1,表2,表3....: ①drop是DDL中删除表的操作,会删除表结构和所有数据,并释放空间. ②并且因为事务的特性,DDL会进行隐式提交,所以不能进行事务回滚 ③drop语句将删除表的结构所依赖的约束,触发器,索引,依赖于该表的存储过程.函数将保留,但是变为invalid状态.  2.truncate:只能对table 用法: truncate table 表名 ①truncate是DDL中删除…
一.char和varchar的区别char是固定长度的,而varchar会根据具体的长度来使用存储空间,另外varchar需要用额外的1-2个字节存储字符串长度.1). 当字符串长度小于255时,用额外的1个字节来记录长度2). 当字符串长度大于255时,用额外的2个字节来记录长度比如char(255)和varchar(255),在存储字符串"hello world"时,char会用一块255个字节的空间放那个11个字符:而varchar就不会用255个,它先计算字符串长度为11,然后…
`create_time` ) NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` ) ) COMMENT '更新时间', 而在界面的mysql工具里,创建时间仅设置为: 而更新时间需要设置为:…
SELECT * FROM A; SELECT * FROM B; 以上是两张表的机构 SELECT * FROM A LEFT JOIN B ON A.id=b.a_id ; ; ; 两个语句查询出来的结果是有差异的 sql查询的关键字顺序为  from -> where -> group by-> having ->order by left join 是在from范围的所以先on条件筛选,然后再做left join 而where是在left join的结果之后再次筛选 语句一…