1. IO处理过程磁盘IO经常会成为系统一个瓶颈,特别是对于运行数据库系统而言。数据从磁盘读取到内存,在到CPU缓存和寄存器,然后进行处理,最后写回磁盘,中间要经过很多过程,下图是一个以write为例 Linux 磁盘IO子系统架构:可以看到IO操作分成了四个层面:1)文件系统缓存:处理数据必须先从磁盘读到缓存,然后修改,然后刷会磁盘。缓存刷新涉及到两个参数:vm.dirty_back
LINUX系统写速度问题解决过程问题描述:linux系统下写速度只有2GB/s左右,无法支持2.5G采样率连续采集,达不到预期性能。而同样代码在windows系统下,却可以支持2.5G采样率连续采集,因此这里需要解决Linux系统写速度问题。尝试一:刚开始以为是API问题,查看资料发现大部分说法是mmap写文件最快,实际测试下来发现效果一般,没有特别惊艳表现。加上使用不太方便,否定了这个
文章目录一、MySQL InnoDB 存储引擎写入磁盘(落盘)原理一条 update 语句在写入磁盘过程为什么必须有“两阶段提交”呢?binlog 写入机制二、MySQL怎么保证持久性、原子性?(MySQL中是如何实现事务提交和回滚)redo log(重做日志) 如何保证事务持久性?undo log(回滚日志) 如何来保证事务原子性?mysql 命令行开启事务提交设置手动提交事务三、
最近,我在系统开发过程中遇到了一个问题,就是磁盘空间被沾满 用df -lh命令查看起初,我认为应该是log日志太多,所以,清理掉了我能想到log日志地方,清理后大概腾出了1G多空间,勉强能用一段时间 但是,很快磁盘再次100%,于是我就想删除更多log日志,于是我就想到用find语句,步骤如下:使用root权限cd /进入根目录使用命令find -type f -size +100M -n
# 如何实现mysql查询排查 ## 查询排查流程 | 步骤 | 操作 | | ---- | ---- | | 1 | 开启查询日志 | | 2 | 分析查询日志 | | 3 | 优化查询语句 | | 4 | 重新测试查询性能 | ## 操作步骤 ### 步骤一:开启查询日志 ```sql -- 开启查询日志 SET GLOBAL slow_query_log = 'ON'
原创 4月前
39阅读
前言前阵子参与了字节跳动后端青训营,其中大项目编写涉及到数据持久化一般选择使用 MySQL 。由于时间原因,数据库使用我选择了无脑三板斧: 1. 建立了索引加速查询、2. 关闭自动提交事务、3. 在需要确保原子性数据库操作之间手动创建和提交事务 。这么一看,仿佛即使是实际开发也与你此前听闻一些 MySQL 相关名词: 读写锁
转载 2023-10-05 17:36:14
1261阅读
叙述 问题背景描述:   在MySQL中执行SQL语句,比如insert,贼,明明可能也就只是一行数据插入,数据量很小,但是耗费时间却很多,为什么?  解析:  1、读操作:内存读-->cache缓存读-->磁盘物理读    读取到数据会按上述顺序往回送。  2、写操作:内存数据直接写入cache缓存(非常快)-->写入disk由上可知,MySQL之所以读写速度
转载 2023-05-30 15:47:03
1399阅读
mongodb想速成吗,这个系列教程你可以看看(2)1、mongodb简介MongoDB 是由C++语言编写,是一个基于分布式文件存储开源数据库系统。在高负载情况下,添加更多节点,可以保证服务器性能。MongoDB 旨在为WEB应用提供可扩展高性能数据存储解决方案。MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSO
company_id和odds_typeid值并不够散列(company_id表少于1k条就表示不够散列),不必要创建索引。 出现sql警告,排查语句是否有问题。 sql速度太慢。开始分析。 使用
原创 2022-01-18 17:12:25
161阅读
company_id和odds_typeid值并不够散列(company_id表少于1k条就表示不够散列),不必要创建索引。出现sql警告,排查语句是否有问题。mysql> SELECT * FROM `basketball_ls_match_odds` WHERE `match_id` = 3554260 AND `company_id` = 15 order by id desc l
原创 2023-03-13 10:45:30
217阅读
昨天需要导入数据,大概一个10M多点sql文件,开始没导入过这么大,用sqlyog和mysql控制台导入都非常,大概3个小时了才50%,于是开始查怎么提速。 文章分三个部分, 1 影响速度因素, 2 介绍如何操作, 3 一些关于my.ini问题以及操作指令链接。一、影响因素总结下来如下: 主要原因是mysql数据保护机制,当前导入数据方式比较安全,校验比较多,所以非常。 关于参数
转载 2023-06-12 18:41:46
165阅读
写一个存储过程,里面写一个循环,就可以了。主键你现在不是自增,所以写语句时候,就Insert到3个字段中。 DELIMITER $$ DROP PROCEDURE IF EXISTS `proc_auto_insertdata`$$ CREATE PROCEDURE `proc_auto_insertdata`() BEGIN DECLARE init_dat
概述insert是经常被问到问题,笔者尝试在本文中对这个问题做一个分类梳理,列举线上例子会做简化,希望对读者有所启发。 注意:因为阿里云MySQL线上实例还是以RDS 5.6为主体,本文分析也是以5.6 innodb 引擎为主,其他版本rds实例可能略有差别。insert几个可能性能瓶颈点有关MySQL insert源码分析文章,可以参看阿里云云栖社区文章,例如:一条简单inse
转载 2023-08-05 13:24:17
417阅读
背景在 MySQL 5.6 之前从库复制都是单线程,因此当主库压力比较大,从库访问量也比较大时候容易出现从库延迟状况,以下列出了一些造成从库延迟原因以及可能解决办法。参考了淘宝内核月报文章,这篇文章比较好延迟原因1、内存配置过小或者 iops 配置(这个指的是 io capacity,sas 盘和 ssd 盘配置有区别)不当。2、主库 TPS 过高。(从库单线程复制会遇到此问题)3、
转载 2023-08-19 14:06:12
238阅读
# 项目方案:如何排查MySQL问题 ## 1. 引言 在开发和维护项目过程中,经常会遇到MySQL数据库查询问题,这些查询可能会影响系统性能和响应速度。因此,及时排查并解决MySQL查询问题是非常重要。本文将介绍如何通过检查和优化数据库索引、SQL语句等方式来排查MySQL查询问题,并给出相应代码示例。 ## 2. 排查方法 ### 2.1 检查查询日志 MySQL
原创 7月前
33阅读
当我们通过测试发现SQL注入,或拿到像phpMyAdmin之类web数据库可视化管理工具,并想要进行下一步渗透时候,可通过数据库写入webshell到目标服务器上,利用webshell管理工具控制目标服务器。下面将讲述几个通过MySQL数据库写入webshell方法,以拿到phpMyAdmin为例。-01-通过outfile写入shell利用条件:1、root权限2、网站绝对路径且具有写入
LOAD DATA INFILE 命令 LOCAL LOCALLOAD DATA [LOW_PRIORITY] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE]INTO TABLE tbl_name[FIELDS[TERMINATED BY '\t'][OPTIONALLY] ENCLOSED BY ''][ESCAPED BY '\\' ]][L
转载 2023-08-22 21:11:07
135阅读
本文分析了MySQL主从延迟原因以及介绍了MTS方案。mysql主从同步延迟原因导致备库延迟原因主要有如下几种:通常备库所在机器性能要比主库所在机器性能差,执行备份自然会更慢。备库读压力大。在备库过多执行繁重查询任务。大事务。因为主库上必须等事务执行完成才会写入 binlog,再传给备库。一次性地用 delete 语句删除太多数据、表 DDL都可能造成延迟。主库是多线程操作,而从库却
# Java 批量写入磁盘速度原因及优化策略 ## 引言 在进行大规模数据处理或者批量写入磁盘过程中,我们可能会遇到 Java 代码写入磁盘速度问题。这个问题可能会导致程序执行时间过长,影响系统性能。本文将从硬件、操作系统和Java代码层面来探讨这个问题,并给出一些优化策略。 ## 背景 Java 是一种跨平台编程语言,在处理大规模数据和进行 IO 操作时,其性能表现通常是非
原创 2023-08-28 10:01:48
282阅读
目录一、优化概述二、查询与索引优化分析1性能瓶颈定位Show命令查询日志explain分析查询profiling分析查询 2索引及查询优化三、配置优化1) max_connections 2) back_log 3) interactive_timeout 4) key_buffer_size 5) query_cache_size 6
  • 1
  • 2
  • 3
  • 4
  • 5