- 浏览: 50290 次
- 性别:
文章分类
- 全部博客 (103)
- 一致性哈希算法 (1)
- 云计算 (2)
- Cassandra学习 (2)
- Java网络通信与笔记 (14)
- ZooKeeper学习 (1)
- HBase学习 (1)
- Sqoop学习 (1)
- Java网页开发之 (2)
- Java网络通信框架 (5)
- (memcached)分布式内存对象缓存系统 (1)
- Redis学习 (5)
- Shell学习 (14)
- Linux学习 (10)
- MySQL优化 (17)
- C++ (7)
- HTML5 (5)
- Android学习 (5)
- 网络 (2)
- Node.js (1)
- D3.js (1)
- R语言学习 (3)
- Spark (1)
- CAN协议 (2)
- 解决方案 (0)
最新评论
MySQL还允许改变语句调度的优先级,它可以使来自多个客户端的查询更好地协作,这样单个客户端就不会由于锁定而等待很长时间。改变优先级还可以确保特定类型的查询被处理得更快。
我们首先应该确定应用的类型,判断应用是以查询为主还是以更新为主的,是确保查询效率还是确保更新的效率,决定是查询优先还是更新优先。
下面我们提到的改变调度策略的方法主要是针对Myisam存储引擎的,对于Innodb存储引擎,语句的执行是由获得行锁的顺序决定的。
MySQL的默认的调度策略可用总结如下:
写入操作优先于读取操作。
对某张数据表的写入操作某一时刻只能发生一次,写入请求按照它们到达的次序来处理。
对某张数据表的多个读取操作可以同时地进行。
MySQL提供了几个语句调节符,允许你修改它的调度策略:
LOW_PRIORITY关键字应用于DELETE、INSERT、LOAD DATA、REPLACE和UPDATE。
HIGH_PRIORITY关键字应用于SELECT和INSERT语句。
DELAYED关键字应用于INSERT和REPLACE语句。
如果写入操作是一个LOW_PRIORITY(低优先级)请求,那么系统就不会认为它的优先级高于读取操作。在这种情况下,如果写入者在等待的时候,第二个读取者到达了,那么就允许第二个读取者插到写入者之前。只有在没有其它的读取者的时候,才允许写入者开始操作。这种调度修改可能存在LOW_PRIORITY写入操作永远被阻塞的情况。
SELECT查询的HIGH_PRIORITY(高优先级)关键字也类似。它允许SELECT插入正在等待的写入操作之前,即使在正常情况下写入操作的优先级更高。另外一种影响是,高优先级的SELECT在正常的SELECT语句之前执行,因为这些语句会被写入操作阻塞。
如果你希望所有支持LOW_PRIORITY选项的语句都默认地按照低优先级来处理,那么请使用--low-priority-updates选项来启动服务器。通过使用INSERT HIGH_PRIORITY来把INSERT语句提高到正常的写入优先级,可以消除该选项对单个INSERT语句的影响。
我们首先应该确定应用的类型,判断应用是以查询为主还是以更新为主的,是确保查询效率还是确保更新的效率,决定是查询优先还是更新优先。
下面我们提到的改变调度策略的方法主要是针对Myisam存储引擎的,对于Innodb存储引擎,语句的执行是由获得行锁的顺序决定的。
MySQL的默认的调度策略可用总结如下:
写入操作优先于读取操作。
对某张数据表的写入操作某一时刻只能发生一次,写入请求按照它们到达的次序来处理。
对某张数据表的多个读取操作可以同时地进行。
MySQL提供了几个语句调节符,允许你修改它的调度策略:
LOW_PRIORITY关键字应用于DELETE、INSERT、LOAD DATA、REPLACE和UPDATE。
HIGH_PRIORITY关键字应用于SELECT和INSERT语句。
DELAYED关键字应用于INSERT和REPLACE语句。
如果写入操作是一个LOW_PRIORITY(低优先级)请求,那么系统就不会认为它的优先级高于读取操作。在这种情况下,如果写入者在等待的时候,第二个读取者到达了,那么就允许第二个读取者插到写入者之前。只有在没有其它的读取者的时候,才允许写入者开始操作。这种调度修改可能存在LOW_PRIORITY写入操作永远被阻塞的情况。
SELECT查询的HIGH_PRIORITY(高优先级)关键字也类似。它允许SELECT插入正在等待的写入操作之前,即使在正常情况下写入操作的优先级更高。另外一种影响是,高优先级的SELECT在正常的SELECT语句之前执行,因为这些语句会被写入操作阻塞。
如果你希望所有支持LOW_PRIORITY选项的语句都默认地按照低优先级来处理,那么请使用--low-priority-updates选项来启动服务器。通过使用INSERT HIGH_PRIORITY来把INSERT语句提高到正常的写入优先级,可以消除该选项对单个INSERT语句的影响。
发表评论
-
基于Hash算法的Mysql分表处理
2015-10-29 00:58 583下面为您介绍的Mysql ... -
数据库中表散列
2015-10-29 00:52 589数据库中的散列法 ... -
mysql大数据高并发处理
2015-10-26 22:00 428一、数据库结构的设计 ... -
优化SQL查询:如何写出高性能SQL语句
2015-10-17 17:41 446优化SQL查询:如何写出高性能SQL语句 这个问题 ... -
MySqL性能优化
2015-09-06 21:26 0I 硬件配置优化 Ø CPU选择:多核 ... -
Mysq日志管理(错误日志、查询日志、慢查询日志)
2015-09-06 21:01 0错误日志 记录内容:包含了当mysqld启动和停止时,以及服 ... -
MySql均衡负载
2015-09-06 21:01 01) 利用mysql 复制分流查询操作 利用mysql的主从复 ... -
如何减少对Mysql的访问以优化SQL语句
2015-09-06 21:00 0避免对同一数据做重复 ... -
使用mysql连接池提高性能
2015-09-06 20:59 0对于访问数据库来说,建立连接的代价比较昂贵,因此,我们有必要建 ... -
Mysql锁的优化
2015-09-06 20:59 0获取锁等待情况 可以 ... -
Mysql数据表的优化
2015-09-26 22:26 435优化表的数据类型 表需要使用何种数据类型,是需要根据应用来判 ... -
Mysql join语句的优化
2015-09-26 22:25 346Mysql4.1开始支持SQL的子查询。这个技术可以使用SEL ... -
Mysql order by语句的优化
2015-09-19 11:56 404在某些情况中,MySQL可以使用一个索引来满足ORDER BY ... -
Mysql group by语句的优化
2015-09-13 16:01 387默认情况下,MySQL排序所有GROUP BY col1, c ... -
Mysql insert语句的优化
2015-09-08 22:59 3461) 如果你同时从同一客户插入很多行,使用多个值表的INSER ... -
Mysql大量插入数据时SQL语句的优化
2015-09-11 22:00 4741) 对于Myisam类型的表,可以通过以下方式快速的导入大量 ... -
Mysql索引优化教程
2015-09-08 22:59 417索引的存储分类 myisam表的数据文件和索引文件是自动分开 ... -
Mysql下优化SQL的一般步骤
2015-09-07 11:50 349通过show status和应用特点了解各种SQL的执行频率 ... -
Mysql SQL Mode详解
2015-09-07 11:50 470Mysql SQL Mode简介 MySQL服务器能够工作在 ... -
Mysql使用SQL的安全问题,Mysql防止SQL注入
2015-09-07 11:50 405SQL注入简述 SQL Injection ...
相关推荐
MySQL数据库的INSERT、UPDATE、DELETE和REPLACE语句是数据操作语言(DML)的关键组成部分,用于在数据库中创建、修改和删除数据。以下是对这些语句的详细说明: 1. INSERT语句: - INSERT语句用于向数据库表中添加...
MySQL 数据库中的 `INSERT`、`UPDATE`、`DELETE` 和 `REPLACE` 语句是数据操作语言(DML)的关键组成部分,用于在数据库中创建、修改和删除数据。以下是对这些语句的详细解释: 1. **INSERT 语句**: - 基本用法:...
MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法详解.doc
在这个场景中,我们关注的是一个名为"Upload-Insert-Update-Delete-Image-PHP-MySQL.rar_msql"的压缩包文件,它显然涉及到使用PHP和MySQL进行基本的CRUD操作,即创建(Create)、读取(Retrieve)、更新(Update)和删除...
MySQL数据库中的INSERT、UPDATE、DELETE和REPLACE语句是数据操作语言(DML)的核心,它们用于在数据库中创建、修改和删除数据。下面将详细解释这些语句的使用方法。 1. INSERT语句: - 基本用法:INSERT INTO `...
my2sql是一个开源工具,可以帮助解析binlog中的DML操作(如INSERT, UPDATE, DELETE),并生成相应的回滚操作(INSERT)。在使用my2sql之前,确保MySQL用户的认证插件是mysql_native_password,以便工具能够正确解析...
MySQL数据库的插入(INSERT)和更新(UPDATE)语句是数据操作的重要组成部分,它们用于向数据库表中添加新数据和修改已有数据。SQL语言通常包括查询(SELECT)、更新(INSERT/UPDATE)、删除(DELETE)等基本操作。...
首先在数据库中创建存储过程和方法,然后调用创建好的存储过程,生成带有与表名及字段相关的insert,update,delete语句,变量与表字段名相同,例如: "insert into temp (col1,col2,col3) values ('"+col1+"','"+col2...
实验中,学生将学习使用 Insert 语句进行数据插入、Delete 语句删除数据、TRUNCATE TABLE 语句清空表数据、Update 语句修改数据。 1. 数据插入操作 在实验中,学生将学习使用 Insert 语句插入数据,包括单记录插入...
在MySQL中,我们可以使用`INSERT INTO`语句来向表中添加新的记录。例如,如果我们有一个名为`Employees`的表,包含`ID`,`Name`和`Position`字段,可以这样插入一条记录: ``` INSERT INTO Employees (ID, Name, ...
MySQL触发器是一种数据库对象,它允许在特定的数据库操作(如INSERT、UPDATE或DELETE)发生时自动执行预定义的SQL语句。在这个场景中,开发者尝试创建一个UPDATE触发器,当`triggletest_triggle`表中的数据被更新时...
在实验 6-2 中,我们授予了 `Teacher` 用户 `SELECT`、`INSERT`、`DELETE`、`UPDATE` 权限,授予了 `Student` 用户 `SELECT` 权限。 二、数据库备份与恢复 * 数据库备份:使用 mysqldump 工具对数据库进行备份,...
在本实验训练中,主要涉及的是关系型数据库管理系统MySQL中的数据操作,包括数据的增加(Insert)、删除(Delete)和修改(Update),这些都是数据库管理的基础且重要的操作。实验旨在加深对这些SQL语句的理解和应用...
9. **触发器与存储过程**:MySQL支持定义触发器以在特定事件(如INSERT、UPDATE或DELETE)后自动执行操作,以及创建存储过程来封装复杂的业务逻辑。 10. **视图**:视图是虚拟表,基于一个或多个表的查询结果。学习...
MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),它以其高效、稳定和易于管理的特点...在实际工作中,结合文档中的实例和提示,可以有效地解决数据库设计、查询优化、性能调整等实际问题,从而提高工作效率。
`mysql_affected_rows()` 函数用于获取最近一次 `INSERT`、`UPDATE` 或 `DELETE` 查询所影响的记录行数。该函数返回的结果是基于最后一次查询的结果。 在上面的示例代码中,我们使用 `mysql_affected_rows()` 函数...
MySQL 8支持标准的SQL语句,包括SELECT、INSERT、UPDATE、DELETE等。用户可以使用这些语句来管理和维护数据。 数据类型 MySQL 8支持多种数据类型,包括整数、浮点数、字符串、日期时间等。每种数据类型都有其特点...
例如,可以使用索引来提高查询速度,使用外键来维护数据的一致性等。 5. MySQL的配置文件 MySQL的配置文件是my.ini文件,该文件记录了MySQL数据库的配置信息。例如,端口号,服务器SQL模式,字符集编码等。 6. ...
了解并熟练掌握这些命令,能帮助开发者更高效地进行数据库管理,例如`CREATE DATABASE`用于新建数据库,`SELECT`用于查询数据,`INSERT`用于插入数据,`UPDATE`用于修改数据,`DELETE`用于删除数据,以及`SHOW`系列...