iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL 5.7 MyISAM并发插入特性是什么
  • 795
分享到

MySQL 5.7 MyISAM并发插入特性是什么

2024-04-02 19:04:59 795人浏览 八月长安
摘要

Mysql 5.7 MyISAM并发插入特性是什么 ,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

Mysql 5.7 MyISAM并发插入特性是什么 ,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

MyISAM存储引擎支持并发插入来减少表读写之间的竞争。如果一张MyISAM表的数据文件没有洞(在表的中间有删除行),在SELECT语句从表中读取行的同时,一条插入语句在执行的时候可以将新插入的行增加到表的最后。如果有多个INSERT语句,它们会排成队列并依次执行。并发插入的结果可能不会立刻可见。
 系统参数concurrent_insert可以用来更改并发插入的处理。默认,这个参数的值是AUTO(或1),并发插入是开启的;当这个参数设为NEVER (或0)时,并发插入是关闭的。当这个参数为ALWAYS (或 2)时,即使表中有删除的行,并发插入也允许在表的后端执行。如果mysql使用了二进制日志,并发插入会被转化成普通的插入语句,例如CREATE...SELECT或INSERT ... SELECT语句。这样做是为了保证可以通过应用日志来重建表中的准确数据。另外,对于那些加了只读的表,并发插入动作会被阻塞,需要等待。
 
使用LOAD DATA INFILE语句,如果对一张满足并发插入条件的MyISAM表指定了CONCURRENT选项(这张表的终极没有空闲的数据块),当LOAD DATA语句执行时,其他会话可以从这张表中查询数据。使用CONCURRENT选项会对LOAD DATA的性能有少许影响,即使是在其他会话没有使用这张表的情况下。如果指定了HIGH_PRioRITY选项,当Mysql服务以--low-priority-updates参数启动时,它会覆盖--low-priority-updates参数。它同时也会导致并发插入不会被使用。

mysql> show variables like '%low%priority%';
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| low_priority_updates | OFF   |
+----------------------+-------+
1 row in set (0.00 sec)

如果这个参数的值设为1,所有的INSERT、UPDATE、DELETE和LOCK TABLE WRITE语句都会等待,直到在指定的MyISAM表上没有悬挂的SELECT或LOCK TABLE READ语句。
这个参数只对使用表级锁的存储引擎生效(例如MyISAM、MEMORY和MERGE)。

对于LOCK TABLE语句,READ LOCAL和READ语句的区别是,当加锁的时候,READ LOCAL允许插入语句和并发插入语句的执行。
mysql> show variables like '%concurrent%';
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| concurrent_insert | AUTO  |
+-------------------+-------+
1 row in set (0.00 sec)
 
concurrent_insert
 
 这个参数的默认值是AUTO,MySQL会允许并发插入,如果MyISAM表中间没有被删除的行,会在表尾插入数据。如果启动mysqld带有--skip-new参数,这个参数的是会被设为NEVER。
 
 NEVER (或 0)    关闭并发插入
 AUTO (或 1)    允许并发插入,如果MyISAM表中间没有被删除的行,会在表尾插入数据
 ALWAYS (或 2)    允许并发插入,无论MyISAM表中间没有被删除的行,都会在表尾插入数据
 
 mysql> show variables like 'concurrent%';
 +-------------------+-------+
 | Variable_name     | Value |
 +-------------------+-------+
 | concurrent_insert | AUTO  |
 +-------------------+-------+
 1 row in set (0.00 sec)
 
 会话①
 mysql> lock table test read local;
 Query OK, 0 rows affected (0.00 sec)
 
 同一会话内的插入或更新操作会失败
 mysql> insert into test values(90, 'Jimmy');
 ERROR 1099 (HY000): Table 'test' was locked with a READ lock and can't be updated
 mysql> update test set name='Trinity' where id=80;
 ERROR 1099 (HY000): Table 'test' was locked with a READ lock and can't be updated
 
 会话②
 允许插入操作
 mysql> insert into test values(90, 'Jimmy');
 Query OK, 1 row affected (0.00 sec)
 
 会话①
 查询会话②的新插入行,会查询到空集
 mysql> select * from test where id=90;
 Empty set (0.00 sec)

mysql> show variables like '%isolation%';
+---------------+-----------------+
| Variable_name | Value           |
+---------------+-----------------+
| tx_isolation  | REPEATABLE-READ |
+---------------+-----------------+
1 row in set (0.00 sec)

 mysql> unlock tables;
 Query OK, 0 rows affected (0.00 sec)
 
 会话②
 更新操作会等待
 mysql> update test set name='Trinity' where id=80;
 Query OK, 1 row affected (1 min 10.11 sec)
 
 直到会话①执行unlock tables语句,会话②才会结束等待
 Rows matched: 1  Changed: 1  Warnings: 0
 
 会话①
 执行unlock tables语句后,可以成功查询到会话②中新插入的数据
 mysql> select * from test where id=90;
 +------+-------+
 | id   | name  |
 +------+-------+
 |   90 | Jimmy |
 +------+-------+
 1 row in set (0.00 sec)

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网数据库频道,感谢您对编程网的支持。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL 5.7 MyISAM并发插入特性是什么

本文链接: https://www.lsjlt.com/news/62115.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL 5.7 MyISAM并发插入特性是什么
    MySQL 5.7 MyISAM并发插入特性是什么 ,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 ...
    99+
    2024-04-02
  • MySQL 5.7 新特性是什么
    小编给大家分享一下MySQL 5.7 新特性是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!我们自豪的宣布 MySQL 5.7 稳定版开放下载了。 MySQL 5.7.9 是...
    99+
    2024-04-02
  • mysql中MyISAM存储引擎的特性是什么
    这篇文章将为大家详细讲解有关mysql中MyISAM存储引擎的特性是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、加锁和并发将整个表加锁到特定行上。对已读的表在读时加共享锁,在写时加排它锁。支持并...
    99+
    2023-06-15
  • MySQL 5.7 online DDL特性有什么优点
    这篇文章主要讲解了“MySQL 5.7 online DDL特性有什么优点”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL 5.7 online D...
    99+
    2024-04-02
  • mysql innodb 主键INT、BIGINT、VARCHAR并发插入性能对比
    10个并发共插入10万行 总耗时(s)              ...
    99+
    2024-04-02
  • MySQL的特性是什么
    这篇文章主要介绍MySQL的特性是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗...
    99+
    2024-04-02
  • mysql的批量插入是什么
    这篇文章主要讲解了“mysql的批量插入是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql的批量插入是什么”吧!说明批量插入是一种逐条优化数据插入的方式。批量插入数据的语法类似于...
    99+
    2023-06-20
  • mysql高并发是什么
    本篇文章为大家展示了mysql高并发是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。mysql高并发解决方案1.利用水平分库分表,由单点分布到多点数据库中,从而...
    99+
    2024-04-02
  • Visual Studio 2010并行特性是什么
    这篇文章将为大家详细讲解有关Visual Studio 2010并行特性是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在以往的计算机发展历史中,硬件技术的发展总是给软件带来免费的性能提...
    99+
    2023-06-17
  • MySQL的主要特性是什么
    MySQL的主要特性是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、 内部和可移植性用C和C++编写。用C和C++写就。使用多种不同的...
    99+
    2024-04-02
  • MySQL中ICP的特性是什么
    MySQL中ICP的特性是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、ICP简述ICP:全称为Index Condition Pus...
    99+
    2024-04-02
  • Mysql排序的特性是什么
    本篇内容主要讲解“Mysql排序的特性是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Mysql排序的特性是什么”吧!1、问题场景新上线一个交易记录导出功能,逻辑很简单:根据查询条件,导出对...
    99+
    2023-06-25
  • MySQL 5.7分区表性能下降的原因是什么
    这篇文章主要讲解了“MySQL 5.7分区表性能下降的原因是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL 5.7分区表性能下降的原因是什么”...
    99+
    2024-04-02
  • Golang中的并发性是什么
    这篇文章主要介绍了Golang中的并发性是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Golang中的并发性是什么文章都会有所收获,下面我们一起来看看吧。什么是并发性,为什么它很重要并发是指在同一时间运行...
    99+
    2023-07-05
  • MySQL 8 新特性Clone Plugin是什么
    这篇文章主要介绍了MySQL 8 新特性Clone Plugin是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。Clone Plugin是M...
    99+
    2024-04-02
  • MySQL中事务的特性是什么
    MySQL中事务的特性有:原子性,是指事务要么全部被执行,要么就全部不被执行。一致性,是指事务必须使数据库从一个状态变换成另一个状态,必须处于一致性状态。隔离性,是指多个用户并发访问数据库时,多个并发事务之间要相互隔离。持久性,是指一个事务...
    99+
    2024-04-02
  • mysql事务特性是什么意思
    mysql事务特性是什么意思?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。mysql事务特性是什么意思事务主要用于处理操作量大,复杂度高的...
    99+
    2024-04-02
  • mysql间歇锁的特性是什么
    本篇内容介绍了“mysql间歇锁的特性是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!说明加锁的基本单位是(next-keylock),...
    99+
    2023-06-20
  • mysql spring事务的特性是什么
    本篇内容主要讲解“mysql spring事务的特性是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql spring事务的特性是什么”吧!说明支持原数据库事务的隔离级别,加入事务传播...
    99+
    2023-06-20
  • MySQL中的插入意向锁是什么
    今天小编给大家分享一下MySQL中的插入意向锁是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解...
    99+
    2023-01-06
    mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作