Mysql查询数据IO次数如何计算
2018-03-16 09:27
1891 查看
io次数与数据是否在buffer中、行在磁盘上的组织形式、是否利用索引都有关。
当索引是InnoDB时,参数列表:
Innodb_data_reads数据读请求量数量,包含 dic ,data,undo
Innodb_data_writes数据写请求量数量,包含 dic ,data,undo
Innodb_dblwr_writes 双写请求数
Innodb_log_writes 日志redo写请求数
计算IO公式:
Innodb_data_reads + Innodb_data_writes + Innodb_dblwr_writes + Innodb_log_writes
当索引是MyISAM时
计算公式:
Key_reads * 2 + Key_writes * 2 + Key_read_requests
命令行输入查询:
set profiling=1;
select * from tb;
...
...
show profile block io for query N;(适用5.1以上版本)
其他版本:
在开始前执行
flush status;
yoursql;
show status;
有很多状态变量可以查看,如:
Bytes_received
Bytes_sent
Last_query_cost 这个值*4k 就是随机读取的数据量,也就是IO次数
当索引是InnoDB时,参数列表:
Innodb_data_reads数据读请求量数量,包含 dic ,data,undo
Innodb_data_writes数据写请求量数量,包含 dic ,data,undo
Innodb_dblwr_writes 双写请求数
Innodb_log_writes 日志redo写请求数
计算IO公式:
Innodb_data_reads + Innodb_data_writes + Innodb_dblwr_writes + Innodb_log_writes
当索引是MyISAM时
计算公式:
Key_reads * 2 + Key_writes * 2 + Key_read_requests
命令行输入查询:
set profiling=1;
select * from tb;
...
...
show profile block io for query N;(适用5.1以上版本)
其他版本:
在开始前执行
flush status;
yoursql;
show status;
有很多状态变量可以查看,如:
Bytes_received
Bytes_sent
Last_query_cost 这个值*4k 就是随机读取的数据量,也就是IO次数
相关文章推荐
- MYSQL如何自动为查询数据的结果编上序号详解
- mysql 单表数据量大时,如何增加查询速度
- mysql 分组查询数据时,如何获得用于分页的总记录数?
- mysql 分组查询数据时,如何获得用于分页的总记录数?
- MySQL中, 如何查询某一天, 某一月, 某一年的数据.
- 关于mysql处理百万级以上的数据时如何提高其查询速度的方法
- 关于mysql处理百万级以上的数据时如何提高其查询速度的方法
- MySql如何插入和查询二进制数据
- MySQL如何将select子查询结果横向拼接后插入数据表中
- mysql 如何查询插入数据表和数据结构
- 关于mysql处理百万级以上的数据时如何提高其查询速度的方法
- 如何查询Oracle,Sql Server,MySQL 中的数据库名称、数据表名称、字段名称
- mysql处理百万级以上的数据时如何提高其查询速度的方法
- 如何Mysql查询这一年第X周的数据?
- MySql如何分级查询上千万行记录的表,并将该大数据显示到界面中
- MySQL如何将select子查询结果横向拼接后插入数据表中
- mysql如何查询当天数据
- 关于mysql处理百万级以上的数据时如何提高其查询速度的方法
- 如何查询Oracle,Sql Server,MySQL 中的数据库名称、数据表名称、字段名称
- MySQL如何创建数据库并查询数据类型