Myisam表的concurrent inserts特性

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介:

一、特性介绍

在某些特定的情况下,Myisam引擎支持并发插入(concurrent inserts),以降低读操作和写操作的争用:如果一个myisam表的数据文件中间没有空闲块(free blocks),那么新的数据行将总是被插入到数据文件的末尾,在这种情况下,该myisam表上将允许同时有insert和select操作而不会有锁冲突。也就是说,当myisam表上有其它会话在读取表数据,你也照样可以执行insert操作。

二、concurrent_insert参数

Myisam表中间的数据行被删除或更新,就可能导致空闲块。如果表文件中间有空闲块,那么并发插入特性将不生效,直到空闲块被数据行填满后才自动生效。Myisam引擎的这种行为,可以通过系统变量concurrent_insert来控制:

mysql> show variables like '%concurrent_insert%';
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| concurrent_insert | AUTO  |
+-------------------+-------+

该参数有三个值:never、auto、always。
值为never(或0),不启用并发插入功能;
值为auto(或1),自动模式,当数据文件中间没有空闲块则启用,否则自动取消;
值为always(或2):即便表数据文件中间有空闲块也始终启用并发插入。当有空闲块时,表上有其它会话的读操作,这时新的数据行将被插入到文件的末尾;如果表上没有其它操作,那么insert操作就是一个正常的操作:获得一个写锁,并优先将数据行插入空闲块中。

三、测试示例

在空表myisam_tb中导入了64条数据,无任何删除操作,且表引擎为myisam。在session1上模拟出一个对myisam_tb表的慢查询:

mysql> select *,sleep(1) from myisam_tb where sex='f';
执行时间40s,输出结果忽略

此时在session2上,插入id为65的数据:

mysql> insert into myisam_tb values(65,'he','f',385685.32,'fbbf');
Query OK, 1 row affected (0.01 sec)

可以看到insert语句数据直接可以插入进去,并没有发生锁等待现象。将myisam_tb表中删除中间一部分数据:

mysql> delete from myisam_tb where id between 20 and 40;
Query OK, 21 rows affected (0.01 sec)

再执行慢查询:

mysql> select *,sleep(1) from myisam_tb where sex='f';

另外一个会话上再执行insert语句,插入一条新数据:

mysql> insert into myisam_tb values(66,'he','f',385685.32,'fbbf');
Query OK, 1 row affected (25.57 sec)

可以看到语句执行了25s,这是因为表有空闲块,concurrent_insert参数值为auto,所以出现了锁等待。
将concurrent_insert参数值修改为always:

mysql> show variables like '%concurrent%';
+-------------------+--------+
| Variable_name     | Value  |
+-------------------+--------+
| concurrent_insert | ALWAYS |
+-------------------+--------+

Session1上再执行一个慢查询:

mysql> select *,sleep(1) from myisam_tb;
执行时间45s,输出结果忽略

session2上插入一条数据:

mysql> insert into myisam_tb values(67,'hgj','f',3232,'bngj');
Query OK, 1 row affected (0.00 sec)

可以看出在concurrent_insert参数值改为always后,即便是有空闲块,新插入的数据也是插在数据文件的末尾。同样也可以实现查询与插入操作并存,不过空闲块空间不会被利用。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
Web App开发 JavaScript 前端开发
安卓webview访问vue工程白屏/无响应/无法加载问题处理
本文目录 1. 问题出现 2. 尝试更换内嵌浏览器 3. 尝试各种babel配置 4. 二分排除法定位问题 5. 模拟器与真机测试还不一样 6. 总结 7. 反思
3418 0
|
SQL 自然语言处理 关系型数据库
Vanna使用ollama分析本地MySQL数据库
这篇文章详细介绍了如何使用Vanna结合Ollama框架来分析本地MySQL数据库,实现自然语言查询功能,包括环境搭建和配置流程。
1888 0
|
应用服务中间件 API nginx
简单配置nginx反向代理,实现跨域请求
简单配置nginx去做反向代理,实现跨域请求 简单介绍nginx的nginx.conf最核心的配置,去做反向代理,实现跨域请求。 更多详细配置,参考nginx官方文档 先介绍几个nginx命令 打开nginx.
7669 0
|
算法 调度
操作系统学习(一):浅析操作系统进程调度算法
操作系统学习(一):浅析操作系统进程调度算法
627 0
操作系统学习(一):浅析操作系统进程调度算法
|
Web App开发 缓存 应用服务中间件
使用Nginx反向代理和proxy_cache缓存搭建CDN服务器加快Web访问速度
碰到问题:移动用户访问web服务器www.osyunwei.com很慢解决办法:1、在移动机房放置一台nginx反向代理服务器2、通过域名DNS智能解析,所有移动用户访问www.osyunwei.com时解析到nginx反向代理服务器3、nginx反向代理服务器与web服务器之间采用专线连接系统运维  www.
2403 0
|
21天前
|
人工智能 自然语言处理 Shell
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
本教程指导用户在开源AI助手Clawdbot中集成阿里云百炼API,涵盖安装Clawdbot、获取百炼API Key、配置环境变量与模型参数、验证调用等完整流程,支持Qwen3-max thinking (Qwen3-Max-2026-01-23)/Qwen - Plus等主流模型,助力本地化智能自动化。
32539 122
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
|
16天前
|
人工智能 安全 机器人
OpenClaw(原 Clawdbot)钉钉对接保姆级教程 手把手教你打造自己的 AI 助手
OpenClaw(原Clawdbot)是一款开源本地AI助手,支持钉钉、飞书等多平台接入。本教程手把手指导Linux下部署与钉钉机器人对接,涵盖环境配置、模型选择(如Qwen)、权限设置及调试,助你快速打造私有、安全、高权限的专属AI助理。(239字)
6913 20
OpenClaw(原 Clawdbot)钉钉对接保姆级教程 手把手教你打造自己的 AI 助手
|
15天前
|
人工智能 机器人 Linux
OpenClaw(Clawdbot、Moltbot)汉化版部署教程指南(零门槛)
OpenClaw作为2026年GitHub上增长最快的开源项目之一,一周内Stars从7800飙升至12万+,其核心优势在于打破传统聊天机器人的局限,能真正执行读写文件、运行脚本、浏览器自动化等实操任务。但原版全英文界面对中文用户存在上手门槛,汉化版通过覆盖命令行(CLI)与网页控制台(Dashboard)核心模块,解决了语言障碍,同时保持与官方版本的实时同步,确保新功能最快1小时内可用。本文将详细拆解汉化版OpenClaw的搭建流程,涵盖本地安装、Docker部署、服务器远程访问等场景,同时提供环境适配、问题排查与国内应用集成方案,助力中文用户高效搭建专属AI助手。
4879 12

热门文章

最新文章