mysql性能浅述——罗列所有表
来源:互联网 发布:招商加盟网络推广方案 编辑:程序博客网 时间:2024/05/02 02:29
1.表引擎
mysql内部提供了支持查看表信息的sql语句:show create table xxxx, 其中会列出表的引擎。但是,我们这里采用另外的一种方式:每个表文件都会存在frm文件,其描述了对应的表文件的相关信息,包括引擎类型(具体的信息参考链接:http://dev.mysql.com/doc/internals/en/frm-file-format.html):
Offset Length Value Explanation
0000
1
fe
Always
0001
1
01
Always
0002
1
09
FRM_VER
(which is in include/mysql_version.h
) +3 +test(create_info->varchar)
0003
1
09
See enum legacy_db_type
in sql/handler.h
. For example, 09 is DB_TYPE_MYISAM
, but 14 if MyISAM with partitioning.
0004
1
03
??
0005
1
00
Always
0006
2
0010
IO_SIZE
0008
2
0100
??
000a
4
00300000
Length, based on key_length + rec_length + create_info->extra_size
000e
2
1000
"tmp_key_length", based on key_length
0010
2
0600
rec_length
0012
4
00000000
create_info->max_rows
0016
4
00000000
create_info->min_rows
001b
1
02
Always (means “use long pack-fields”)
001c
2
0800
key_info_length
001e
2
0800
create_info->table_options
also known as db_create_options?
one possible option is HA_LONG_BLOB_PTR
0020
1
00
Always
0021
1
05
Always (means “version 5 frm file”)
0022
4
00000000
create_info->avg_row_length
0026
1
08
create_info->default_table_charset
0027
1
00
Always
0028
1
00
create_info->row_type
0029
6
00..00
Always (formerly used for RAID support)
002f
4
10000000
key_length
0033
4
c0c30000
MYSQL_VERSION_ID
from include/mysql_version.h
0037
4
10000000
create_info->extra_size
003b
2
0000
Reserved for extra_rec_buf_length
003d
1
00
Reserved for default_part_db_type
, but 09 if MyISAM with partitioning
003e
2
0000
create_info->key_block_size
根据以上表frm前63个字节,可以从图中的表格信息得知:第四个字节和第62个字节能够获取表的引擎类型,常见的比如:第四个字节为12表示innodb 引擎,如果有分区的话第二个字节为20,第62个字节为12;myisam 对应第四字节为9或者14,其他的引擎具体对应的值,可以实际创建frm查看真实情况
2.要查看一张表是否存在数据库中,最简便的方式是使用mysql提供的命令:show tables like "%xxxx%",但是这个语句在数据库表文件特别多,数据量大得情况下,会表现得性能特别底下,所以需要想另外的方法:那就是通过遍历数据库表文件frm,看是否存在此表,或者获取满足某种过滤条件的表,这样一来就会提高一定的性能,减少mysql的查询负载
注:查东西最好到官方网站与查找,绝对不会让你失望。
- mysql性能浅述——罗列所有表
- 罗列linux所有安装包
- oss 罗列Bucket所有Object
- Java Web学习——问题罗列
- 罗列手机上所有的磁盘标识符。
- 罗列HostName下所有的git工程
- 罗列当前文件夹下所有文件
- MySQL常用的一些有效命令罗列
- 罗列所有系统颜色的小工具及代码
- C# 如何罗列应用程序创建和打开的所有窗体?
- 树状结构的罗列所有的节点的sql
- select下拉菜单所有选项均罗列显示
- JQuery的ON()方法支持的所有事件罗列
- mysql高性能—分区表
- 清除Mysql所有表
- mysql所有表查询
- VB6.0数据库开发五个实例——罗列的总结
- 【大话设计模式】——行为型模式总结(罗列篇)
- Hello Mr.J——请把我埋在这Spring里
- 装饰器设计模式
- C语言关键字
- HDU ACM 1050 Moving Tables
- DelegatingActionProxy
- mysql性能浅述——罗列所有表
- 平衡二叉树(AVL树)的查找,插入和删除
- java基础的学习
- linux系统vi命令编辑后Ctrl+s“死机”
- 【Loadrunner】检查点设置
- UpdateData(TRUE)与 UpdateData(FALSE);
- “【】”的输入与输出
- tomcat常见操作
- 黑马程序员——OC基础05—Foundation框架