- 博客(331)
- 资源 (26)
- 收藏
- 关注
原创 MySQL与PostgreSQL对比
MySQLPostgreSQL数据类型支持支持JSON,但不如PostgreSQL多有一些扩从性,但不如PostgreSQL支持更多的数据类型,如数组、hstore、JSON、JSONB、范围类型等扩展性有一些扩展性,但不如PostgreSQL支持自定义数据类型、函数、操作符,具有强大的扩展性SQL兼容性遵循SQL标准,但有一些自定义扩展更接近ANSISOL标准,支持窗口函数、公共表表达式等性能优化对简单查询进行了优化,特别是读密集型摸作有一个复杂的查
2023-09-20 01:40:46 505
原创 通过performance分析mysql内存占用
在 MySQL 使用过程中,偶尔会出现OOM、内存异常突增等异常现象。为了排查内存异常,我们需要分析内存占用情况,找出内存占用的具体事件。我们可以从以下几张performance下的表分析内存,每张表对应不同的维度,有用户维度、主机维度、进程维度。为了打开 performance_schema 功能,我们需要在 MySQL 配置中设置 performance_schema = ON。
2023-07-30 21:53:36 713
原创 MySQL基于复制线程实现MTS并行恢复binlog
通过SQL_Thread的方式可以使用主从本身并行复制的能力,在binlog越多且并行度越好的场景上表现越好。可以断点恢复,人为控制进度,比如stop slave或者遇到错误时,可以断点恢复可以利用多线程复制来加快增量速度,时恢复更快要关闭mysqld手动执行过程较mysqlbinlog方式更为复杂。
2023-07-30 21:34:04 298
原创 perf 分析MySQL底层函数调用
将perf.script文件作为输入,通过Flame Graphs工具,生成svg格式的性能图形。数据采集完成后,通常会生成一个二进制数据文件perf.data,通过perf report可以读取perf.data文件并在终端中展示。采集mysqld从启动到关闭整个生命周期的性能数据,尤其适合采集mysqld刚启动时的性能数据。Flame Graphs 使用perf采集的数据进行图形化展示;持续采集mysqld性能数据,直到ctrl+c取消。采集执行某个SQL时的性能数据。
2023-07-29 23:22:31 284
原创 oceanbase的数据视图
mysql.* 视图:该类视图包含存储数据库对象元数据的数据字典表和用于其他操作目的的系统表。information_schema.* 视图:该类视图提供对 MySQL 租户中数据库元数据(包括:数据库或表的名称、列的数据类型或访问权限)的访问。OceanBase 数据库的字典视图包含 information_schema.* 视图、oceanbase.CDB_* 视图以及 mysql.* 视图。oceanbase.CDB_* 视图:该类视图可用于获取包含在系统租户和普通租户中的部分数据库对象的有关信息。
2023-06-26 00:19:02 1007
原创 架构设计核心理念
通过上述技术手段,当任何一台服务器宕机或出现各种不可预期的问题时,就将相应的服务切换到其他可用的服务器上,不影响系统的整体可用性,也不会导致数据丢失。伴随业务的发展、创新,运行环境的变化,对技术也就提出了更多、更高的要求。因此,面对不同业务系统的不同需求,对高可用与高性能也会有不同的决策结论,其实现的复杂度也各不相同。所有的预测都存在不正确的可能性。伴随业务的发展、创新,运行环境的变化,对技术也就提出了更多、更高的要求。伴随业务的发展、创新,运行环境的变化,对技术也就提出了更多、更高的要求。
2023-06-10 22:34:48 1039
原创 半同步复制下MySQL关闭的优雅方式
在生产环境中一般我们都是通过 kill -15 来关闭,这在单实例模式下是没有问题的,但在半同步复制模式下反而会导致 Master 节点不等待 Slave 节点是否收到二进制日志的 ACK 回包,直接完成事务,然后停止数据库服务,从而可能导致主从数据不一致。同样的场景,假设主库发送 binlog 到从库时,从库 io 线程故障,此时主库等待从库 ack,这时候主库被 kill -9 关闭了,对于客户端来说会收到返回失败信息,此时如果把从库提升为主库是可行的,从库也没有收到事务。
2023-05-26 00:05:47 202
原创 Kubernetes(K8S)POD如何退出
总之,Pod 中的进程必须正确处理接收到的信号,以实现优雅的退出。终止超时:如果在 Termination Grace Period结束之前进程仍然未退出,Kubernetes 将发送 SIGKILL 信号(9号信号)给进程,强制终止进程。信号发送:在 Termination Grace Period 内,Kubernetes 会向 Pod 中的主进程发送 SIGTERM 信号(15号信号),用于请求进程进行优雅的退出。进程处理:进程收到 SIGTERM 信号后,根据进程的信号处理方式进行处理。
2023-05-25 00:27:32 1160
原创 Kubernetes(K8S)的三种探针
执行命令(Exec):通过在容器内执行特定的命令来检查应用程序的状态。如果命令的返回状态码是 0,探针被认为是成功的;否则,探针被认为是失败的。发送 HTTP 请求(HTTP GET):通过发送 HTTP GET 请求到容器内的指定端点来检查应用程序的状态。如果返回的 HTTP 状态码在 2xx 或 3xx 范围内,探针被认为是成功的;否则,探针被认为是失败的。TCP 套接字(TCP Socket):通过尝试建立到容器内指定端口的 TCP 连接来检查应用程序的状态。
2023-05-24 23:33:16 1353
原创 MySQL更新语句执行过程
并把操作的物理数据页修改记录到redo log buffer里,由于update这个事务会涉及到多个页面的修改,所以redo log buffer里会记录多条页面的修改信息。8、然后涉及到的老数据通过快照的方式存储到innodb_buffer_pool里的undo page里,并且记录undo log修改的redo(如果data page里有就直接载入到undo page里,如果没有,则需要去磁盘里取出相应page的数据,载入到undo page里)这里讨论commit的情况,并且双1。
2023-05-24 00:18:52 424
原创 linux的CPU与负载
CPU使用率高表示CPU正在执行较多的任务,但这并不一定表示系统负载也很高。如果系统上存在大量的等待IO的任务或其他资源瓶颈,即使CPU使用率很低,负载仍然可能很高。例如,短时间内有大量CPU密集型任务执行导致CPU使用率很高,但由于任务执行较快,负载平均值可能并不高。相反,长时间运行的IO密集型任务可能导致CPU使用率较低,但负载平均值却很高。因此,评估系统性能时,除了关注CPU使用率外,还应综合考虑负载平均值和其他资源的使用情况,以全面了解系统的负载情况。
2023-05-17 10:15:57 483
原创 linux进程状态以及僵尸进程和孤儿进程的区别
这些进程状态反映了进程在操作系统中的不同状态和活动。进程状态的变化和管理对于系统的性能和稳定性具有重要影响,因此理解和处理进程状态是系统管理和调优的重要方面。僵尸进程的资源(如进程ID和退出状态)仍保留在系统中,但没有实际的可执行代码。在Linux操作系统中,进程可以处于不同的状态,表示其当前的执行状态和调度情况。停止和(Stopped and):进程是一个被暂停的进程的父进程,它正在等待继续执行的信号。僵尸和(Zombie and):进程是僵尸进程的父进程,它正在等待获取僵尸进程的退出状态。
2023-05-17 00:59:25 343
原创 Linux IO调度模式
可以通过修改Linux系统的IO调度器来选择适合特定应用和硬件配置的IO调度模式。通常可以通过/sys/block/<设备名>/queue/scheduler路径下的文件进行调整。例如,可以使用"echo deadline > /sys/block/sda/queue/scheduler"命令将IO调度模式设置为Deadline。在Linux操作系统中,IO调度模式是用于管理和调度磁盘IO请求的算法。Linux提供了几种IO调度模式,用于决定如何处理和排序IO请求,以提高磁盘IO性能和效率。
2023-05-17 00:51:31 449
原创 MySQL体系结构和数据查询的执行过程
它的目的是在多次执行相同查询时,避免重复执行查询的开销,直接从缓存中获取结果,从而提高查询性能。当一个查询被执行时,MySQL首先检查查询缓存,如果之前已经执行过相同的查询并且缓存仍然有效,那么MySQL就会直接从缓存中返回之前的结果,而不再执行查询的实际操作。MySQL的优化器负责在执行查询之前,分析查询语句和相关表结构的统计信息,根据这些信息生成最优的查询执行计划,以提高查询性能。MySQL的分析器负责解析和分析SQL查询语句,进行语法检查和语义分析,并生成查询执行计划供优化器和执行器使用。
2023-05-17 00:33:54 177
原创 「OceanBase 4.1 体验」|OCP Express
OCP Express 是一个基于 Web 的 OceanBase 4.x 轻量化管理工具,作为 OceanBase 数据库的工具组件,它集成在 OceanBase 数据库集群中,支持数据库集群关键性能指标查看及基本数据库基础管理功能。通过 OCP Express,用户可以执行基础的 OceanBase 数据库管理任务,例如创建或变更租户、管理数据库及用户等,还可以查看有关 OceanBase 数据库的监控、性能、诊断、日志等信息。
2023-05-15 01:18:13 419
原创 「OceanBase 4.1 体验」|快速安装部署
OceanBase 数据库是一款完全自研的企业级原生分布式数据库,在普通硬件上实现金融级高可用,首创“三地五中心”城市级故障自动无损容灾新标准,刷新 TPC-C 标准测试,单集群规模超过 1500 节点,具有云原生、强一致性、高度兼容 Oracle/MySQL 等特性。
2023-05-02 17:41:10 4902
原创 Kubernetes的资源模型与资源管理Qos
并且,Kubernetes 会保证只有当 Guaranteed 类别的 Pod 的资源使用量超过了其 limits 的限制,或者宿主机本身正处于 Memory Pressure 状态时,Guaranteed 的 Pod 才可能被选中进行 Eviction 操作。QoS 划分的主要应用场景,是当宿主机资源紧张的时候,kubelet 对 Pod 进行 Eviction(即资源回收)时需要用到的。在Kubernetes中,Qos用于对不同的pod进行分类,以便于K8S在资源不足时,按照优先级调度pod。
2023-04-12 00:03:10 133
oracle压测工具swingbench2.6等组件
2020-07-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人