07 2021 档案

消费者分区分配策略
摘要:(1)Range范围分配 Range范围分配策略是kafka默认的分配策略,它可以确保每个消费者消费的分区数量是均衡的。需要注意的是range范围分配策略是针对每个topic的。 配置消费者的partition.assignment.strategy为org.apache.kafka.clients 阅读全文

posted @ 2021-07-25 22:33 Eleanor123 阅读(145) 评论(0) 推荐(1) 编辑

Rebalance再均衡
摘要:Kafka中的rebalance称之为再均衡,是Kafka中确保consumer group下所有的consumer如何达成一致,分配订阅的topic的每个分区的机制。 1、Rebalance触发的时机有: (1)消费者组中consumer的个数发生变化了。 例如有新的consumer加入到消费者组 阅读全文

posted @ 2021-07-23 23:31 Eleanor123 阅读(50) 评论(0) 推荐(1) 编辑

生产者分区写入策略
摘要:1、轮询策略:按照消息尽量保证每个分区的负载,消息会均匀分布到每个partition。写入消息的时候,key为null的时候,默认使用的是轮询策略。 2、随机策略:不使用。 3、按key写入策略:key.hash()%分区的数量。 4、自定义分区策略:类似于mapReduce指定分区。 乱序问题: 阅读全文

posted @ 2021-07-23 23:18 Eleanor123 阅读(105) 评论(0) 推荐(1) 编辑

Kafka事务
摘要:Kafka事务是2017年kafka0.11.0.0引入的新特性。类似于数据库的事务。 Kafka事务指的是生产者生产消息以及消费者提交offset的操作可以在一个原子操作中,要么都成功,要么都失败。 尤其是在生产者、消费者并存时,事务的保障尤其重要。 阅读全文

posted @ 2021-07-23 22:58 Eleanor123 阅读(74) 评论(0) 推荐(1) 编辑

幂等性
摘要:1、幂等性是什么 比如HTTP请求,一次或多次请求,得到的响应是一致的(网络超时等除外),就是执行多次和执行一次的操作影响是一样的。 如果某个系统是不具备幂等性的,用户重复提交了某个表格就会造成不良影响。例如,用户在浏览器上点击了多次提交订单按钮,会在后台生成一个一模一样的订单。 2、Kafka的幂 阅读全文

posted @ 2021-07-23 07:59 Eleanor123 阅读(214) 评论(0) 推荐(1) 编辑

消费者组
摘要:一个消费者组中可以包含多个消费者,共同来消费topic中的数据。 一个topic中如果只有一个分区,那么这个分区只能被某个组中的一个消费者消费。 有多少个分区,就可以被同一个组内的多少个消费者消费。 阅读全文

posted @ 2021-07-23 07:43 Eleanor123 阅读(59) 评论(0) 推荐(1) 编辑

Kafka中的重要概念
摘要:Broker:Kafka服务器进程,生产者、消费者都要连接broker。一个集群由多个broker组成,功能实现Kafka集群的负载均衡、容错。 Producer:生产者。 Consumer:消费者。 Topic:主题。一个Kafka集群中,可以包含多个topic,一个topic可以包含多个分区。T 阅读全文

posted @ 2021-07-23 07:38 Eleanor123 阅读(70) 评论(0) 推荐(1) 编辑

偏移量offset
摘要:Offset记录着下一条将要发送给consumer的消息的序号。 默认Kafka将offset存储在zookeeper中。 在一个分区中,消息是有顺序的方式存储的,每个在分区的消费都是由一个递增的id。这个就是偏移量offset。 偏移量在分区中才是由意义的。在分区之间,offset是没有任何意义的 阅读全文

posted @ 2021-07-23 07:31 Eleanor123 阅读(276) 评论(0) 推荐(1) 编辑

服务注册和发现的意思,Spring cloud如何实现?
摘要:当开始一个项目时,通常在属性文件中进行所有配置。随着越来越多的服务开发和部署,添加和修改这些属性变得更加复杂。 有些服务可能会下降,而某些位置可能发生变化。手动更改属性可能会产生问题。 Eureka服务注册和发现可以在这种情况下提供帮助。由于所有服务都在eureka服务器上注册并通过eureka服务 阅读全文

posted @ 2021-07-23 07:24 Eleanor123 阅读(47) 评论(0) 推荐(1) 编辑

负载平衡的意义
摘要:负载平衡可以改善跨计算机、计算机集群、网络链接、中央处理单元或磁盘驱动等多种计算资源的工作负载分布。 负载平衡旨在优化资源使用,最大化吞吐量,最小化响应时间并避免任何单一资源的过载。 使用多个组件进行负载平衡而不是单个组件可能会通过冗余来提高可靠性和可用性。 负载平衡通常涉及专用软件或硬件,例如多层 阅读全文

posted @ 2021-07-23 07:19 Eleanor123 阅读(86) 评论(0) 推荐(1) 编辑

使用Spring cloud的优势
摘要:使用Spring boot开发分布式微服务时,面临问题如下: (1)与分布式系统相关的复杂性,这种开销包括网络问题、延迟问题、带宽问题,安全问题。 (2)服务发现。服务发现工具管理群集中的流程和服务如何查找和互相交谈。它涉及一个服务目录,在该目录中注册服务,然后能够查找并连接到该目录中的服务。 (3 阅读全文

posted @ 2021-07-23 07:15 Eleanor123 阅读(142) 评论(0) 推荐(1) 编辑

什么是Spring cloud
摘要:Spring cloud流应用程序启动器是基于Spring boot的Spring集成应用程序,提供与外部系统的集成。 Spring cloud task,一个生命周期短暂的微服务框架,用于快速构建执行有限数据除了的应用程序。 阅读全文

posted @ 2021-07-23 07:07 Eleanor123 阅读(48) 评论(0) 推荐(1) 编辑

主题
摘要:主题是一个逻辑概念,用于生产者发布数据,消费者拉取数据 Kafka的主题必须有标识符,而且是唯一的,kafka中可以有任意数量的主题,没有数量上的限制。 在主题中的消息是有结构的,一般一个主题包含某一类消息。 一旦生产者发送消息到主题中,这些消息就不能被更新。 阅读全文

posted @ 2021-07-21 00:10 Eleanor123 阅读(140) 评论(0) 推荐(1) 编辑

消费者、生产者、消费者组概念
摘要:生产者:负责将数据推送给broker的topic 消费者:负责从broker的topic中拉取数据,并自己进行处理 消费者组: Consumer group是kafka提高的可扩展且具有容错性的消费者机制 一个消费者组可以包含多个消费者 一个消费者组有一个唯一的ID(group Id) 组内的消费者 阅读全文

posted @ 2021-07-21 00:02 Eleanor123 阅读(444) 评论(0) 推荐(1) 编辑

生成全局id的方式
摘要:生成全局id有以下几种方式: UUID:不适合做主键,因为太长,并且无序不可读,查询效率低。比较适合用于生成唯一的名字的标识比如文件的名字。 数据库自增id:两台数据库分别设置不同步长,生成不重复ID的策略来实现高可用。这种方式生成的id有序,但是需要独立部署数据库实例,成本高,还会有性能瓶颈。 使 阅读全文

posted @ 2021-07-20 23:55 Eleanor123 阅读(101) 评论(0) 推荐(1) 编辑

如何使得搜索的信息更准确?
摘要:(1)善于利用关键词。搜索的时候把形容词、副词砍掉,只留名词作为主干信息来搜索。 (2)搜索内容包含了2个以上关键词时,可以使用空格分隔。当搜索的内容只需包含多个关键词任意一个可以用竖线|。 (3)可以通过不同关键词组合,挖掘更多隐含信息。 (4)当搜索的内容不包含某些关键词,可以用减号“-”来避开 阅读全文

posted @ 2021-07-19 00:19 Eleanor123 阅读(1182) 评论(0) 推荐(1) 编辑

水平分区
摘要:保持数据表结构不变,通过某种策略存储数据分片,重要每一片数据分散到不同的表或者库中,达到了分布式的目的。水平拆分可以支撑非常大的数据量。 水平拆分是指数据表行的拆分,表的行数超过200万行时,就会变慢,这时可以把一张的表的数据拆成多张表来存储。比如可以将用户信息表拆分成多个用户信息表,这样就能避免单 阅读全文

posted @ 2021-07-18 23:40 Eleanor123 阅读(195) 评论(0) 推荐(1) 编辑

大表如何优化?
摘要:当MySQL单表记录数过大时,数据库的增删改查性能会明显下降,常见的优化方法如下: (1)限定数据的范围 务必禁止不带任何限制数据范围条件的查询语句。比如我们当用户在查询订单历史的时候,可以控制在一个月范围内。 (2)读写分离 经典的数据库拆分方案,主库负责写,从库负责读。 (3)垂直分区 根据数据 阅读全文

posted @ 2021-07-18 00:09 Eleanor123 阅读(173) 评论(0) 推荐(1) 编辑

MySQL_fetch_array和MySQL_fetch_object的区别是什么?
摘要:MySQL_fetch_array()将结果行作为关联数组或来自数据库的常规数组返回。 MySQL_fetch_object从数据库返回结果行作为对象。 阅读全文

posted @ 2021-07-17 19:06 Eleanor123 阅读(223) 评论(0) 推荐(1) 编辑

BLOB和TEXT区别
摘要:BLOB是一个二进制对象,可以容纳可变数量的数据。TEXT是一个不区分大小写的BLOB。 BLOB和TEXT类型之间的唯一区别在于对BLOB值进行排序和比较时区分大小写,对TEXT值不区分大小写。 阅读全文

posted @ 2021-07-17 19:05 Eleanor123 阅读(205) 评论(0) 推荐(1) 编辑

如何在Unix和MySQL时间戳之间进行转换?
摘要:UNIX_TIMESTAMP是懂MySQL时间戳转换成Unix时间戳的命令。 FROM_UNIXTIME是从Unix时间戳转换成MySQL时间戳的命令。 阅读全文

posted @ 2021-07-17 19:00 Eleanor123 阅读(224) 评论(0) 推荐(1) 编辑

SQL注入漏洞的产生原因,如何防止?
摘要:SQL注入产生的原因:程序开发过程中不注意规范书写SQL语句和对特殊字符进行过滤,导致客户端可以通过全局变量post和get提交一些SQL语句正常执行。 如何防止: 开启配置文件中的magic_quotes_gpc和magic_quotes_runtime设置执行SQL语句时使用addslashes 阅读全文

posted @ 2021-07-17 18:56 Eleanor123 阅读(200) 评论(0) 推荐(1) 编辑

视图是什么?游标是什么
摘要:视图是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增、改、查操作,视图通常是有一个表或多个表的行或列的子集。对视图的修改不影响基本表。视图可以使我们获取数据更容易,相对于多表查询。 游标是对查询出来的结果集作为一个单元来有效的处理。游标可以定在该单元中的特定行,从结果集的当前行检索一行或多行 阅读全文

posted @ 2021-07-17 18:49 Eleanor123 阅读(162) 评论(0) 推荐(1) 编辑

主键、外键、索引的区别?
摘要:(1)概念 主键:唯一标识一条记录,不能有重复,不允许为空。 外键:表的外键是另一表的主键,外键可以有重复,可以是空值。 索引:该字段没有重复值,但可以有一个空值。 (2)作用 主键:用来保证数据完整性 外键:用于和其他表建立联系用的 索引:提高查询排序的速度 (3)个数 主键:主键只能有一个 外键 阅读全文

posted @ 2021-07-17 18:43 Eleanor123 阅读(1382) 评论(0) 推荐(1) 编辑

用什么可以确保表格里的字段只接受特定范围里的值?
摘要:Check限制,它在数据库表格里被定义,用来限制输入该列的值。 触发器可以被用来限制数据库表格里的字段能接受的值,但是这种办法要求触发器在表格里被定义,这可能在某些情况下影响到性能。 阅读全文

posted @ 2021-07-17 18:38 Eleanor123 阅读(117) 评论(0) 推荐(1) 编辑

zookeeper
摘要:一个kafka的集群通常由多个broker组成,这样才能实现负载均衡,以及容错。 Broker是无状态sateless的,它们是通过zookeeper来维护集群状态。 一个kafka的broker每秒可以处理数十万次读写,每个broker都可以处理TB消息而不影响性能。 Zk用于管理和协调broke 阅读全文

posted @ 2021-07-16 00:55 Eleanor123 阅读(47) 评论(0) 推荐(1) 编辑

kafka学习常用的网站
摘要:1、kafka官网:http://kafka.apache.org/documentation/#introduction 2、Apache生态圈网址:https://cwiki.apache.org/confluence/display/kafka/ecosystem 3、kafka版本:http 阅读全文

posted @ 2021-07-16 00:40 Eleanor123 阅读(1778) 评论(0) 推荐(2) 编辑

Kafka的消息不丢失
摘要:(1)Broke消息不丢失:因为有副卡relicas的存在,会不断地从leader中同步副本,索引一个broker崩溃,不会导致说话间丢失,除非只有一个副本。 (2)生产者消息不丢失:ACK机制(配置为All/-1),配置0或1可能会存在丢失。 (3)消费者消费不丢失:重点控制offset At-l 阅读全文

posted @ 2021-07-13 00:41 Eleanor123 阅读(46) 评论(0) 推荐(1) 编辑

消息传递的语义性
摘要:Flink有对应的美中不同机制保证,提高exactly-once保障(二阶段事务提交方式) at-most once:最多一次,只管把数据消费,不管是否成功,会不会有数据丢失。 at-least-once:最少一次,可能会出现重复消费。 Exactly-once:仅有一次,事务性的保证,保证消息有且 阅读全文

posted @ 2021-07-13 00:39 Eleanor123 阅读(38) 评论(0) 推荐(1) 编辑

日志删除
摘要:日志删除是以段(segment日志)为单位来进行定期清理的。 Kafka日志管理器中会有一个专门的日志删除任务来定期检测和删除不符合保留条件的日志分段文件,这个周期可以通过broker端参数log.retention.check.interval.ms来配置,默认是300,000,即5分钟。当前日志 阅读全文

posted @ 2021-07-13 00:31 Eleanor123 阅读(242) 评论(0) 推荐(1) 编辑

Kafka中的数据清理(logdeletion)
摘要:Kafka的消息存储在磁盘中,为了控制磁盘占用空间,kafka需要不断地对过去一些消息进行清理工作。 Kafka的每个分区都有很多的日志文件,这也是为了方便进行日志清理。在kafka中,提供两种日志清理方式: 日志删除:log deletion,按照指定的策略直接删除不符合条件的日志。 日志压缩:l 阅读全文

posted @ 2021-07-13 00:12 Eleanor123 阅读(933) 评论(0) 推荐(1) 编辑

数据积压
摘要:数据积压指的是消费者因为一些外部的IO、一些比较耗时的操作(full GC--stop the world),就会造成消息在partition中一直存在得不到消费,就会产生数据积压。 所以需要监控系统(kafka的监控系统Eagle),如果出现这种情况,需要尽快处理,虽然后续的spark strea 阅读全文

posted @ 2021-07-13 00:03 Eleanor123 阅读(293) 评论(0) 推荐(1) 编辑

为什么选择kafka?
摘要:常见消息中间件对比 特性 ActiveMQ RabbitMQ Kafka RocketMQ 所属公司 Apache Mozilla public license Apache Apache/ali 成熟度 成熟 成熟 成熟 比较成熟 生产-消费者模式 支持 支持 支持 支持 发布-订阅 支持 支持 阅读全文

posted @ 2021-07-11 16:41 Eleanor123 阅读(82) 评论(0) 推荐(1) 编辑

哪些公司在用kafka?
摘要:Google Tencent cloud Facebook Pineapple Fund Microsoft Aws Comcast Cloudera Verizon media Leaseweb ARM Bloomberg HUAWEI red hat,Inc. IBM Inspur JetBra 阅读全文

posted @ 2021-07-11 16:38 Eleanor123 阅读(144) 评论(0) 推荐(1) 编辑

Kafka的应用场景?
摘要:通常Apache kafka应用在两类程序: (1)建立实时的数据管道,以可靠地在系统或应用程序之间获取数据 (2)构建实时流应用程序,以转换或响应数据流 如图,可以看到: (1)producers:可以有很多的应用程序,将消息数据放到kafka的集群中。 (2)Consumers:可以有很多的应用 阅读全文

posted @ 2021-07-11 16:24 Eleanor123 阅读(476) 评论(0) 推荐(1) 编辑

Kafka是什么
摘要:Kafka是由Apache软件基金会开发的一个开源流平台,由Scala和Java编写。Kafka的Apache官网是这样介绍Kafka的: Apache Kafka是一个分布式流平台,一个分布式的流平台应该包括的能力: 发布和订阅流数据流,类似消息队列或企业消息传递系统 以容错的持久化方式存储数据流 阅读全文

posted @ 2021-07-11 16:13 Eleanor123 阅读(82) 评论(0) 推荐(1) 编辑

什么是页级锁
摘要:页级锁是MySQL锁定粒度介于行级锁和表级锁中间的一种锁。 表级锁速度快,但冲突多;行级锁冲突少,但速度慢。 所以页级锁是折中的,一次锁定相邻的一组记录。BDB支持页级锁。 阅读全文

posted @ 2021-07-11 13:21 Eleanor123 阅读(379) 评论(0) 推荐(1) 编辑

什么是时间戳
摘要:时间戳就是数据库表中单独加一列时间戳,时间戳就是不加锁,通过时间戳来控制并发出现的问题。 比如“timestamp”每次读出来的时候,把该字段也读出来,当写回去的时候,把该字段加1,提交之前,跟数据库的该字段比较一次,如果比数据库的值大的话,就允许保存,否则不允许保存,这种处理方法虽然不使用数据库系 阅读全文

posted @ 2021-07-11 13:20 Eleanor123 阅读(893) 评论(0) 推荐(1) 编辑

乐观锁与悲观锁
摘要:(1)什么是乐观锁 乐观锁认为一个用户读数据的时候,别人不会去写自己所读的数据。 (2)什么是悲观锁 悲观锁和乐观锁相反,觉得自己读数据库的时候,别人可能刚好在写自己刚读的数据。在对数据时候,为了不让别人修改自己读取的数据,就会先对自己读取的数据加锁,只有自己把数据读完了,才允许别人修改那部分数据。 阅读全文

posted @ 2021-07-11 13:19 Eleanor123 阅读(49) 评论(0) 推荐(1) 编辑

非聚簇索引一定会回表查询吗?
摘要:不一定,这涉及到查询语句所要求的字段是否全部命中了索引,如果全部命中了索引,那么不需要进行回表查询。 例如,在学生表的年龄上建立了索引 CREATE INDEX sc_age ON sc(age) 查看sc的表结构 desc sc 当进行explain select age from sc wher 阅读全文

posted @ 2021-07-11 12:19 Eleanor123 阅读(1505) 评论(0) 推荐(3) 编辑

hash索引和B+树索引的底层实现原理
摘要:Hash索引底层就是hash表,进行查找时,调用一次hash函数就可以获取到相应的键值,之后进行回表查询获得实际数据。B+树底层实现是多路平衡查找树,对于每一次的查询都是从根节点出发,查找到叶子节点方可获得所查键值,然后根据查询判断是否需要回表查询数据。 Hash索引和B+树索引区别如下: 一般情况 阅读全文

posted @ 2021-07-11 11:51 Eleanor123 阅读(502) 评论(0) 推荐(1) 编辑

MySQL有哪些索引
摘要:(1)数据结构角度 Btree Hash Fulltext R-Tree (2)物理存储角度 聚集索引 clustered index 非聚集索引 non-clustered index (3)从逻辑角度 普通索引:仅快速查询 唯一索引:加速查询+列值唯一(可以有null) 主键索引:加速查询+列值 阅读全文

posted @ 2021-07-11 11:40 Eleanor123 阅读(140) 评论(0) 推荐(1) 编辑

索引的设计原则
摘要:(1)搜索的索引列,不一定是所要选择的列。最适合索引的列是出现在where子句中的列,或链接子句中指定的列,而不是出现在select关键字后的选择列表中的列。 (2)使用唯一索引。考虑某列中值的分布。对于唯一值的列,索引的效果最好,而具有多个重复值的列,其索引效果最差。 (3)短索引。如果对串列进行 阅读全文

posted @ 2021-07-11 11:33 Eleanor123 阅读(301) 评论(0) 推荐(1) 编辑

explain参数之extra
摘要:Extra列包含MySQL解决查询的详细信息,有一下几种情况: Using where:列数据是从仅仅使用了索引中的信息而没有读取实际的行动的表返回的,这发生在对表的全表请求列都是同一个索引的部分的时候,表示MySQL服务器将在存储引擎检索行后再进行过滤。 Using temporary:表示MyS 阅读全文

posted @ 2021-07-10 23:54 Eleanor123 阅读(91) 评论(0) 推荐(1) 编辑

explain参数之type
摘要:Type字段是最重要的字段之一,显示查询使用了何种类型。从最好到最差的连接类型为:system,const,eq_ref,ref,fulltext,ref_or_null,index_merge,unique_subquery,index_subquery,range,index,all。 (1)S 阅读全文

posted @ 2021-07-10 23:48 Eleanor123 阅读(161) 评论(0) 推荐(1) 编辑

explain参数之select_type
摘要:Select_type 说明 Simple 简单select(不使用union或子查询) Primary 最外层的select Union Union中第二个或之后的select语句 Dependent union Union中第二个或之后的select语句取决于外面的查询 Union result 阅读全文

posted @ 2021-07-10 23:21 Eleanor123 阅读(42) 评论(0) 推荐(1) 编辑

如何查询最后一行的记录
摘要:Select * from 表名 order by id desc limit 1; 例如:Select * from student order by sno desc limit 1; 表student所有数据如下: 阅读全文

posted @ 2021-07-10 18:50 Eleanor123 阅读(100) 评论(0) 推荐(1) 编辑

为什么MySQL自增id不连续?
摘要:唯一键冲突 事务回滚 批量申请自增id的策略 阅读全文

posted @ 2021-07-10 18:48 Eleanor123 阅读(33) 评论(0) 推荐(1) 编辑

MySQL字符集
摘要:1、MySQL字符集 MySQL服务器可以支持多种字符集,可以使用show character set命令查看所有MySQL支持的字符集。 在同一台服务器,同一个数据库,甚至同一个表的不同字段都可以指定使用不同的字符集。 MySQL的字符集包括字符集(character)和校对规则(collatio 阅读全文

posted @ 2021-07-10 18:42 Eleanor123 阅读(346) 评论(0) 推荐(1) 编辑

MySQL有哪些优化策略?
摘要:(1)优化count查询 Count是一个特殊的函数,它可以统计某个列值的数量,在统计列值时要求列值是非空的,不会统计null值。如果count中指定了列或列的表达式,则统计的就是这个表达式有值的结果数,而不是null。 Count的另一个作用是统计结果集的行数,当MySQL确定括号内的表达式不可能 阅读全文

posted @ 2021-07-10 18:23 Eleanor123 阅读(142) 评论(0) 推荐(1) 编辑

explain的字段有哪些?
摘要:Id:表示select子句或者操作表的顺序,执行顺序从大到小执行,当id一样时,执行顺序从上往下。 Select_type:表示查询中每个select子句的类型,例如simple表示不包含子查询、表连接或其他复杂语法的简单查询,primary表示复杂查询的最外层查询,subquery表示在selec 阅读全文

posted @ 2021-07-10 18:04 Eleanor123 阅读(225) 评论(0) 推荐(1) 编辑

如何定位低效SQL?
摘要:可以通过两种方式来定位执行效率较低的SQL语句。一种通过慢查询日志定位,可以通过慢查询日志定位那些已经执行完毕的SQL语句。 另一种是使用show processlist查询,慢查询日志在查询结束后才记录,所以在应用反应执行效率出现问题的时候查询慢查询日志不能定位问题,此时可以使用show proc 阅读全文

posted @ 2021-07-10 17:43 Eleanor123 阅读(171) 评论(0) 推荐(1) 编辑

索引失效的情况有哪些?
摘要:如果索引列出现了隐式类型转换,则MySQL不会使用索引。常见的情况是在SQL的where条件中字段类型为字符串,其值为数值,如果没有加引号那么MySQL不会使用索引。 如果where条件中含有or,除非or前使用了索引列而or之后是非索引列,索引会失效。 MySQL不能在索引中执行like操作,这是 阅读全文

posted @ 2021-07-10 17:38 Eleanor123 阅读(282) 评论(0) 推荐(1) 编辑

trace的作用?
摘要:从MySQL5.6开始,可通过trace文件进一步获取优化器是如何选择执行计划的,在使用时需要先打开设置,然后执行一次SQL,最后查看information_schema.optimizer_trace表的内容,该表为联合i表,只能在当前会话进行查询,每次查询后返回的都是最近一次执行的SQL语句。 阅读全文

posted @ 2021-07-08 23:57 Eleanor123 阅读(138) 评论(0) 推荐(1) 编辑

show profile的作用?
摘要:通过show profile可以分析SQL语句性能消耗,例如查询到SQL会执行多少时间,并显示CPU、内存使用量,执行过程中系统锁即表锁的花费时间等信息。例如show profile cpu/memory/block IO for query n分别查询id为N的SQL语句的CPU、内存以及IO的消 阅读全文

posted @ 2021-07-08 23:53 Eleanor123 阅读(78) 评论(0) 推荐(1) 编辑

索引的使用原则
摘要:1、建立索引 对查询频次比较高且数据量比较大的表建立索引。索引字段的选择,最佳候选列应当从where子句的条件中提取,如果where子句中的组合比较多,应当挑选最常用,过滤效果最好的列的组合。业务上具有唯一特性的字段,即使是多个字段的组合,也必须建成唯一索引。 2、使用前缀索引 索引列开始的部分字符 阅读全文

posted @ 2021-07-08 23:46 Eleanor123 阅读(550) 评论(0) 推荐(1) 编辑

MySQL主从复制的步骤
摘要:(1)在主库上把数据更改记录到二进制日志中。 每次准备提交事务完成数据更新前,主库将数据更新的事件记录到二进制日志中。MySQL会按事务提交的顺序而非每条语句的执行顺序来记录二进制日志,在记录二进制日志后,主库会告诉存储引擎可以提交事务了。 (2)备库将主库的日志复制到自己的中继日志中。 备库首先启 阅读全文

posted @ 2021-07-08 00:08 Eleanor123 阅读(81) 评论(0) 推荐(1) 编辑

什么是聚簇索引
摘要:聚簇索引不是一种索引类型,而是一种数据存储方式。innoDB的聚簇索引实际上在同一个结构中保存了B-Tree索引和数据行。当表有聚簇索引时,它的行数据实际上存放在索引的叶子页中,因为无法同时把数据行存放在两个不同的地方,所以一个表只能有一个聚簇索引。 优点: 可以把相关数据保存在一起,数据访问就更快 阅读全文

posted @ 2021-07-07 23:55 Eleanor123 阅读(1986) 评论(0) 推荐(2) 编辑

什么是全文索引?
摘要:通过数值比较、范围过滤等就可以完成绝大数需要的查询,但如果希望通过关键字匹配进行查询,就需要基于相似度的查询,而不是精确的数值比较,全文索引就是为这种场景设计的。 myISAM的全文索引是一种特殊的B-Tree索引,一共有两层。第一层是所有关键字,然后对每一个关键字的第二层,包含的是一组相关的“文档 阅读全文

posted @ 2021-07-07 23:47 Eleanor123 阅读(1762) 评论(0) 推荐(1) 编辑

Memory
摘要:如果要快速访问数据且这些数据不会被修改,重启以后丢失也没有关系,那么使用memory表是非常有用的。Memory表至少要比myISAM表快一个数量级,因为所有数据都保存在内存,不需要磁盘IO,memory表的结构在重启后会保留,但数据会丢失。 Memory表适合的场景:查找或者映射表、缓存周期性聚合 阅读全文

posted @ 2021-07-07 23:41 Eleanor123 阅读(72) 评论(0) 推荐(1) 编辑

myISAM
摘要:MySQL5.1之前,myISAM是默认存储引擎,myISAM提供了大量的特性,包括全文索引、压缩、空间函数等,但不支持事务和行锁,最大缺陷是崩溃后无法安全恢复。对于只读的数据或表比较小,可以忍受修复操作的情况仍然可以使用myISAM。 myISAM将表存储在数据文件和索引文件中,分别以.myd和. 阅读全文

posted @ 2021-07-07 23:34 Eleanor123 阅读(343) 评论(0) 推荐(1) 编辑

什么是空间索引?
摘要:MyISAM表支持空间索引,可以用作地理数据存储。它和B-Tree索引不同,这类索引无需前缀查询。 空间索引会从所有维度来索引数据,查询时可以有效地使用任意维度来组合查询。 必须使用MySQL的GIS即地理信息系统的相关函数来维护数据,但MySQL对GIS的支持并不完善,因此大部分人都不会使用这个特 阅读全文

posted @ 2021-07-06 23:45 Eleanor123 阅读(402) 评论(0) 推荐(1) 编辑

哈希索引了解?
摘要:哈希索引基于哈希表实现,只有精确匹配索引所有列的查询才有效。对于每一行数据,存储引擎都会对所有的索引列计算一个哈希码,哈希码是一个较小值,并且不同的键值的行计算出的哈希码也不一样。哈希索引将所有的哈希码存储在索引中,同时在哈希表中保存指向每个数据行的指针。 只有memory引擎显式支持哈希索引,这也 阅读全文

posted @ 2021-07-06 23:40 Eleanor123 阅读(137) 评论(0) 推荐(1) 编辑

innoDB
摘要:innoDB是MySQL的默认事务型引擎,用来处理大量短期事务。innoDB的性能和自动崩溃恢复特性使得它在非事务存储需求中也很流行,除非有特别原因否则应该优先考虑InnoDB。 innoDB的数据存储在表空间,表空间由一系列数据文件组成。MySQL4.1以后innoDB可以将每个表的数据和索引放在 阅读全文

posted @ 2021-07-06 23:30 Eleanor123 阅读(150) 评论(0) 推荐(1) 编辑

数据库死锁如何解决
摘要:死锁指的是多个事务在同一资源上相互占用并请求锁定对方占用的资源而导致恶性循环的现象。当多个事务试图以不同顺序锁定资源时可能就会产生死锁,多个事务同时锁定同一个资源也会产生死锁。 为了解决死锁问题,数据库系统实现了死锁检测和死锁超时机制。 越复杂的系统,例如InnoDB存储引擎,越能检测到死锁的循环依 阅读全文

posted @ 2021-07-06 23:16 Eleanor123 阅读(582) 评论(0) 推荐(1) 编辑

索引有什么用?
摘要:索引也叫键,是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能很关键,尤其是当表中数据量越来越大时,索引对于性能的影响越来重要。在数据量小且负载较低时,不恰当的索引对性能的影响可能还不明显,但数据量逐渐增大时,性能会急剧下降。 索引大大减少了服务器需要扫描的数据量,可以帮助服务器避免排序和 阅读全文

posted @ 2021-07-06 00:38 Eleanor123 阅读(328) 评论(0) 推荐(1) 编辑

数据类型的优化策略?
摘要:1、更小的通常更好 一般尽量使用可以正确存储数据的最小数据类型,更小的数据类型通常更快,因为占用的磁盘更少,内存和CPU缓存更小。 2、尽量简单 简单的数据类型操作需要的CPU周期更少,例如整数比字符操作代价更低,因为字符集合校对规则使字符相比整型更复杂。应该使用MySQL的内建类型date、tim 阅读全文

posted @ 2021-07-06 00:31 Eleanor123 阅读(98) 评论(0) 推荐(1) 编辑

MySQL的锁策略有什么?
摘要:表锁是MySQL最基本的锁策略,并且是开销最小的策略。表锁会锁定整张表,一个用户在对表进行写操作前需要先获得写锁,这会阻塞其他用户对该表的所有读写操作。只有没有写锁时,其他读取的用户才能获取读锁,读锁之间不相互阻塞。 行锁可以最大程度的支持并发,同时也带来了最大开销。innoDB和XtraDB以及一 阅读全文

posted @ 2021-07-05 00:14 Eleanor123 阅读(136) 评论(0) 推荐(1) 编辑

行锁
摘要:Lock_rec_not_gap:当个行记录上的锁。 Lock_gap:间隙锁,锁定一个范围,但不包括记录本身。Gap锁的目的是为了防止同一事务的两次当前读,出现幻读的情况。 Lock_ordinary:锁定一个范围,并且锁定记录本身。对于行的查询,都是采用该方法,主要目的是为了解决幻读。 阅读全文

posted @ 2021-07-05 00:08 Eleanor123 阅读(56) 评论(0) 推荐(1) 编辑

Innodb_lock_waits
摘要:Requesting_trx_id:申请锁资源的事务id Requesting_lock_id:申请的锁的id Blocking_trx_id:阻塞的事务id Blocking_lock_id:阻塞的锁的id 阅读全文

posted @ 2021-07-05 00:07 Eleanor123 阅读(39) 评论(0) 推荐(1) 编辑

Innodb_locks表
摘要:Lock_id:锁id Lock_trx_id:拥有锁的事务id,可以和Innodb_trx表join得到事务的详细信息。 Lock_mode:锁的模式 Lock_type:锁的类型。Record代表行级锁,table表示表级锁 lock_table:被锁定的或者包含锁定记录的表的名称 Lock_i 阅读全文

posted @ 2021-07-05 00:01 Eleanor123 阅读(263) 评论(0) 推荐(1) 编辑

Innodb_trx表字段
摘要:Trx_id:InnoDB存储引擎内部唯一的事务id Trx_status:当前的事务状态,running、lock wait、rolling back or commtting. Trx_started:事务的开始hijack Trx_requested_lock_id:事务等待的锁的id(如果事 阅读全文

posted @ 2021-07-04 23:55 Eleanor123 阅读(728) 评论(0) 推荐(1) 编辑

查看锁情况的SQL
摘要:Select * from information_schema.innodb_trx; -- 记录当前运行的事务 Select * from information_schema.innodb_locks; -- 记录当前出现的锁 Select * from information_schema. 阅读全文

posted @ 2021-07-04 23:54 Eleanor123 阅读(85) 评论(0) 推荐(1) 编辑

写操作
摘要:Delete:删除一条数据时,先对记录加X锁,再执行删除操作。 Insert:插入一条记录时,会先加“隐式锁”来保护这条新插入的记录在本事务提交前不被别的事务访问到。 Update: 如果被更新的列,修改前后没有导致存储空间变化,那么会先给记录加X锁,再直接对记录进行修改。 如果被更新的列,修改前后 阅读全文

posted @ 2021-07-04 23:33 Eleanor123 阅读(52) 评论(0) 推荐(1) 编辑

读操作
摘要:对于普通的select语句,InnoDB不会加任何锁 1、Select …… lock in share mode 将查到的数据加上一个S锁,运行其他事务继续获取这些记录的S锁,不能获取这些记录的X锁(会阻塞) 使用场景:读取数据后,其他事务不能修改,但是自己也不一定能修改,因为其他事务也可以使用“ 阅读全文

posted @ 2021-07-04 23:32 Eleanor123 阅读(35) 评论(0) 推荐(1) 编辑

读锁与写锁
摘要:读锁:共享锁、shared locks、S锁。 写锁:排他锁、exclusive locks、X锁 Select:不加锁 X锁X锁:冲突 X锁S锁:冲突 S锁X锁:冲突 S锁S锁:不冲突 阅读全文

posted @ 2021-07-04 20:38 Eleanor123 阅读(312) 评论(0) 推荐(1) 编辑

Mvcc
摘要:multi-version concurrence control多版本并发控制,指的是在使用read committed、repeatable read这两种隔离级别的事务在执行普通的select操作时访问记录的版本链过程。 可以是不同的事务的读写、写读操作并发执行,从而提高系统性能。 Read 阅读全文

posted @ 2021-07-04 20:34 Eleanor123 阅读(45) 评论(0) 推荐(1) 编辑

readView
摘要:对于使用read uncommitted隔离级别的事务来说,直接读取记录的最新版本就好了,对于使用serializable隔离级别的事务来说,使用加锁的方式来访问记录。对于使用read committed和repeatable read隔离级别的事务来说,就需要用到版本链,核心就是需要判断版本链中的 阅读全文

posted @ 2021-07-04 20:22 Eleanor123 阅读(214) 评论(0) 推荐(0) 编辑

版本链
摘要:对于使用InnoDB存储引擎的表来说,它的聚簇索引记录中都包含两个必要的隐藏列(row_id并不是必须的,创建的表中有主键或者非null唯一值是不会包含row_id列): Trx-id:每次对某条记录进行改动时,都会把对应的事务id赋值给trx_id隐藏列。 Roll_pointer:每次对某条记录 阅读全文

posted @ 2021-07-04 20:11 Eleanor123 阅读(43) 评论(0) 推荐(0) 编辑

事务的隔离性
摘要:1、修改隔离级别 Set session transaction isolation level read uncommitted; 2、查看隔离级别 Select @@tx_isolation 3、事务的4种隔离级别 (1)读未提交read uncommitted 一个事务可以读到其他事务还没有提 阅读全文

posted @ 2021-07-04 19:59 Eleanor123 阅读(122) 评论(0) 推荐(0) 编辑

索引的代价
摘要:1、空间上的代价 一个索引都为对应的一个B+树,树中每一个节点都是一个数据页,一个页默认会占用16KB的存储空间,所以一个索引也是会占用磁盘空间的。 2、时间上的代价 索引是对数据的排序,那么当对表中的数据进行增删改操作时,都需要去维护修改内容涉及到的B+树索引。所以在进行增删改操作时可能需要额外的 阅读全文

posted @ 2021-07-04 19:25 Eleanor123 阅读(227) 评论(0) 推荐(0) 编辑

二级索引与聚簇索引的不同
摘要:(1)按指定的索引列的值来进行排序 (2)叶子节点存储的不是完整的用户记录,而只是索引列+主键 (3)目录项记录中不是主键+页号,变成了索引列+页号 (4)在对二级索引进行查找数据的时候,需要根据主键值去聚簇索引中再查找一遍完整的用户记录,这个过程叫做回表。 阅读全文

posted @ 2021-07-04 19:02 Eleanor123 阅读(96) 评论(0) 推荐(0) 编辑

哈希表是什么?
摘要:哈希表,也称散列表,是根据键值而直接进行访问的数据结构。它通过把键值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 哈希表的做法其实很简单,就是把key通过一个固定的算法函数即所谓的哈希函数转换成一个整型数字,然后就将该数字对数组长度进行取余,取 阅读全文

posted @ 2021-07-04 18:55 Eleanor123 阅读(438) 评论(0) 推荐(1) 编辑

聚簇索引的特点
摘要:聚簇索引的特点: (1)按主键值的大小进行记录和页的排序 数据页(叶子节点)里的记录是按照主键值从小到大排序的一个单向链表。 数据页(叶子节点)之间也是按照主键值从小到大排序的一个双向链表。 B+树中同一个层的页目录也是按照主键值从小到大排序的一个双向链表。 (2)B+数的叶子节点存储的是完整的用户 阅读全文

posted @ 2021-07-04 18:52 Eleanor123 阅读(332) 评论(0) 推荐(0) 编辑

Dynamic和compressed行格式
摘要:这两种行格式类似于compact行格式,只不过在处理行溢出数据时有分歧,它们不会在记录的真实数据处存储一部分数据,而是把所有的数据都存储到其他页面中,只在记录的真实数据处存储其他页面的地址。另外,compressed行格式会采用压缩算法对页面进行压缩。 阅读全文

posted @ 2021-07-04 18:29 Eleanor123 阅读(271) 评论(0) 推荐(0) 编辑

记录中的数据太多产生的溢出
摘要:一个页的大小一般是16KB,也就是16384字节,而一个varchar(M)类型的列就最多可以存储65533个字节,这样会出现一个页存放不了一条记录的情况。 在compact和redundant行格式中,对于占用存储空间非常大的列,在记录的真实数据处只会存储该列的一部分数据,把剩余的数据分散存储在几 阅读全文

posted @ 2021-07-04 18:27 Eleanor123 阅读(81) 评论(0) 推荐(0) 编辑

行数据溢出
摘要:Varchar(M)类型的列最多可以占用65535个字节,其中的M代表该类型最多存储的字符数量,如果我们使用ASCII字符集的话,一个字符就代表一个字节,查看varchar(65535)是否可用: CREATE table test1 ( a varchar(65535)) 阅读全文

posted @ 2021-07-04 16:43 Eleanor123 阅读(29) 评论(0) 推荐(0) 编辑

记录的真实数据
摘要:记录的真实数据除了自己定义的列的数据以外,还会有三个隐藏列: 列名 是否必须 占用空间 描述 Row_id 否 6字节 行ID,唯一标识一条记录 Transaction_id 是 6字节 事务ID Roll_pointer 是 7字节 回滚指针 实际上这几个列的真正名称是:DB_row_id、DB_ 阅读全文

posted @ 2021-07-04 16:39 Eleanor123 阅读(44) 评论(0) 推荐(0) 编辑

Compact行格式
摘要:变长字段长度列表 NULL标志位 记录头信息 列1数据 列2数据 …… 记录的额外信息: 这部分信息是服务器为了描述这条记录而不得不额外添加的一些信息,这些额外信息有:变长字段长度列表、null值列表、记录头信息。 (1)变长字段长度列表 MySQL支持一些变长的数据类型,比如varchar(M)、 阅读全文

posted @ 2021-07-04 16:33 Eleanor123 阅读(146) 评论(0) 推荐(0) 编辑

InnoDB行格式
摘要:一行记录可以以不同的格式存在InnoDB中,行格式分别是compact、redundant、dynamic和compressed行格式。可以在创建或修改的语句中指定行格式: Create table 表名 (列的信息) row_format=行格式名称 Alter table 表名 row_form 阅读全文

posted @ 2021-07-04 16:31 Eleanor123 阅读(45) 评论(0) 推荐(0) 编辑

InnoDB数据页结构
摘要:名称 中文名 占用空间 说明 File header 文件头部 38字节 页的一些通用信息 Page header 页面头部 56字节 数据页专有的一些信息 Infimum+supremum 最小记录和最大记录 26字节 两个虚拟的行记录 User records 用户记录 不确定 实际存储的行记录 阅读全文

posted @ 2021-07-04 15:47 Eleanor123 阅读(24) 评论(0) 推荐(0) 编辑

存储引擎
摘要:存储引擎负责对表中的数据进行读取和写入,常见的存储引擎有innoDB、myISAM等,不同的存储引擎有自己的特性,数据在不同存储引擎中存放的格式也是不同的,比如memory都不用磁盘来存储数据。 在innoDB,数据会存储到磁盘上,在真正处理数据时需要先将数据加载到内存,表中读取某些记录时,inno 阅读全文

posted @ 2021-07-04 15:23 Eleanor123 阅读(94) 评论(0) 推荐(0) 编辑

消息队列的两种模型
摘要:1、点对点模式 消息发送者生产消息发送到消息队列中,然后消息接受者从消息队列中取出并消费消息。消息以后,消息队列中不再有存储,所以消息接收者不可能消费到已经被消费的消息。一个消费者消费一个消息。 点对点模式特点: 每个消息只有一个接收者,即一旦被消费,消息就不再消息队列中。 发送者和接收者没有依赖性 阅读全文

posted @ 2021-07-03 23:59 Eleanor123 阅读(245) 评论(0) 推荐(0) 编辑

消息队列的应用场景
摘要:(1)异步处理 可以将一些比较耗时的操作放在其他系统中,通过消息队列将需要进行处理的消息进行存储,其他系统可以消费消息队列中的数据。 比较常见的有:发送短信验证码、发送邮件。 (2)系统解耦 比如一个微服务系统通过接口(http)调用另一个微服务,这时候耦合很严重,只要接口发生变化就会导致系统不可用 阅读全文

posted @ 2021-07-03 19:38 Eleanor123 阅读(263) 评论(0) 推荐(1) 编辑

事务的保存点
摘要:一、什么是保存点 如果开启了一个事务,并且已经输入了很多的语句时,如果忽然发现上一条语句有问题,可以用rollback语句来让数据库状态恢复到事务执行之前的样子,然后一切再重来。因为这个问题,MySQL提出了一个保存点savepoint的概念,就是在事务对应的数据库语句中打几个点,我们调用rollb 阅读全文

posted @ 2021-07-03 12:39 Eleanor123 阅读(818) 评论(0) 推荐(1) 编辑

事务的隐式提交
摘要:当使用start transaction或begin语句开启一个事务,或者将系统变量auto commit设置为off时,事务不会自动提交,但是如果当输入某些语句会隐式的被提交掉,就像输入了commit语句一样,这种因为某些特殊的语句而导致事务提交的情况叫做隐式提交,会导致事务隐式提交语句包括: ( 阅读全文

posted @ 2021-07-03 00:26 Eleanor123 阅读(1068) 评论(0) 推荐(1) 编辑

事务的自动提交
摘要:默认情况下,如果不显式使用start transaction或begin语句开启一个事务,那么每一条语句都是一个独立的事务,这称之为事务的自动提交。 如果需要关闭自动提交的功能,可以使用如下方法进行关闭: 第一,显式的使用start transaction或begin语句开启一个事务,这样在本次事务 阅读全文

posted @ 2021-07-03 00:04 Eleanor123 阅读(425) 评论(0) 推荐(0) 编辑

开启事务
摘要:Begin[work]; begin语句代表开启一个事务,后面的work单词可以省略。开启了事务之后,就可以继续写若干语句,这些语句就属于刚开启的这个事务。 BEGIN; sql……; start TRANSACTION Start transaction语句和begin语句功效相同,都标志开启一个 阅读全文

posted @ 2021-07-03 00:01 Eleanor123 阅读(240) 评论(0) 推荐(0) 编辑

事务是什么
摘要:事务是由一组原子性的SQL查询,或者说一个独立的工作单元。如果数据库引擎能成功对数据库应用该组查询的全部语句,那么就执行该组查询。 如果其中有任何一条因为崩溃或者其他原因无法执行,那么所有的语句都不好执行。即事务内的预计要么全部执行成功,要么全部执行失败。 阅读全文

posted @ 2021-07-02 23:46 Eleanor123 阅读(79) 评论(0) 推荐(1) 编辑

MySQL的读写锁
摘要:在处理并发读或写时,可以通过实现一个由两种类型组成的锁系统来解决问题。这两种锁通常被称为共享锁和排他锁,也叫读锁和写锁。 读锁是共享的,相互不阻塞,多个用户同一时刻可以读取同一个资源而不相互干扰。 写锁是排他的,一个写锁会阻塞其他的写锁和读锁,确保在给定时间内只有1个用户能执行写入并防止其他用户读取 阅读全文

posted @ 2021-07-02 23:34 Eleanor123 阅读(1072) 评论(0) 推荐(0) 编辑

消息中间件是什么
摘要:消息中间件就是用来存放消息的软件(组件)。比如为了分析网站的用户行为,需要记录用户的访问日志,这些一条条的日志,可以看成一条条消息。可以把这些消息存储到消息队列中,后面有一些应用程序需要处理这些日志,就可以把这些消息取出来然后进行处理。 目前比较常见的消息队列有很多,例如:kafka、RabbitM 阅读全文

posted @ 2021-07-02 00:12 Eleanor123 阅读(323) 评论(0) 推荐(0) 编辑

什么是消息队列
摘要:消息队列(message queue,缩写为MQ),顾名思义它是一种用于存储消息的队列。 消息队列简单理解就是将需要传输的数据存放在队列中。 可以往队列中添加消息,然后从队列中取出消息。 阅读全文

posted @ 2021-07-02 00:11 Eleanor123 阅读(225) 评论(0) 推荐(0) 编辑

什么是自适应哈希索引
摘要:自适应哈希索引是Innodb引擎的一个特殊功能,当它注意到某些索引值被使用的非常频繁时,会在内存中基于B-Tree所有之上再创建一个哈希索引,这就让B-Tree索引也具有哈希索引的一些优点,比如快速哈希查找。这是一个完全自动的内部行为,用户无法控制或配置,但如果有必要刻意关闭该功能。 阅读全文

posted @ 2021-07-01 23:54 Eleanor123 阅读(638) 评论(0) 推荐(0) 编辑

MySQL的B-Tree索引
摘要:大多数MySQL引擎都支持这种索引,但底层的存储引擎可能使用不同的存储结构,例如NDB使用T-Tree,而InnoDB使用B+ tree。 B-Tree说明所有的值都是按顺序存储的,并且每个叶子页到到根的距离相同。B-Tree索引能加快访问数据的速度。因为存储引擎不需要进行全盘扫描来获取数据,是从索 阅读全文

posted @ 2021-07-01 23:50 Eleanor123 阅读(75) 评论(0) 推荐(0) 编辑

datetime和timestamp的区别
摘要:Datetime能保存大范围的值,从1001-9999年,精度为秒。把日期和时间封装到了一个整数中,与时区无关,使用8字节存储空间。 Timestamp和Unix的时间戳相同,只使用了4个字节的存储空间,范围比datetime小得多,只能表示1970-2038年,并且依赖时区。 阅读全文

posted @ 2021-07-01 23:40 Eleanor123 阅读(370) 评论(0) 推荐(0) 编辑

MySQL主从复制的作用?
摘要:复制的目的让一台服务器的数据与其他服务器保持同步,一台主库的数据可以同步到多台备库上,备库本身也可以配置为另一台服务器的主库。主库备库之间可以用多种不同的组合方式。 MySQL支持的复制方式有两种: (1)基于行的复制。MySQL5.1版本才加入进来。这种方式会将实际数据记录在二进制日志中,最大的好 阅读全文

posted @ 2021-07-01 00:24 Eleanor123 阅读(280) 评论(0) 推荐(0) 编辑

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