七、使用mysqlshow工具查看数据库、表和列的信息。具体语法:
shell> mysqlshow [options] [db_name [tbl_name [col_name]]]
注:如果没有数据库给定,列出数据库列表
如果没有表给定,列出所有数据库的表
如果没有列给定,列出表内所有的列
详细参数如下:
参数 | 描述 | 适用 | 弃用 |
---|---|---|---|
--bind-address=ip_address | 同mysql命令 | ||
--compress | 同mysql命令 | ||
--count | 同mysql命令 | ||
--debug[=debug_options] | 同mysql命令 | ||
--debug-check | 同mysql命令 | ||
--debug-info | 同mysql命令 | ||
--default-auth=plugin | 同mysql命令 | ||
--default-character-set=charset_name | 同mysql命令 | ||
--defaults-extra-file=file_name | 同mysql命令 | ||
--defaults-file=file_name | 同mysql命令 | ||
--defaults-group-suffix=str | 同mysql命令 | ||
--help | 同mysql命令 | ||
--host=host_name | 同mysql命令 | ||
--keys | 显示表索引 | ||
--login-path=name | 同mysql命令 | ||
--no-defaults | 同mysql命令 | ||
--password[=password] | 同mysql命令 | ||
--pipe | 同mysql命令 | ||
--plugin-dir=path | 同mysql命令 | ||
--port=port_num | 同mysql命令 | ||
--print-defaults | 同mysql命令 | ||
--protocol=type | 同mysql命令 | ||
--secure-auth | 同mysql命令 | 5.7.4 | 5.7.5 |
--shared-memory-base-name=name | 同mysql命令 | ||
--show-table-type | 显示指定列所属表的表类型 | ||
--socket=path | 同mysql命令 | ||
--ssl | 同mysql命令 | ||
--ssl-ca=file_name | 同mysql命令 | ||
--ssl-capath=dir_name | 同mysql命令 | ||
--ssl-cert=file_name | 同mysql命令 | ||
--ssl-cipher=cipher_list | 同mysql命令 | ||
--ssl-crl=file_name | 同mysql命令 | ||
--ssl-crlpath=dir_name | 同mysql命令 | ||
--ssl-key=file_name | 同mysql命令 | ||
--ssl-verify-server-cert | 同mysql命令 | ||
--status | 显示表的额外信息 | ||
--user=user_name, | 同mysql命令 | ||
--verbose | 同mysql命令 | ||
--version | 同mysql命令 |
例子:/usr/local/mysql/bin/mysqlshow --user=root --host=127.0.0.1 test t test为数据库、t为表名。
加参数的例子:/usr/local/mysql/bin/mysqlshow --user=root --host=127.0.0.1 test t test --status。
不加参数时的结果大致如下:
是表结构的相关信息及用户对表操作的相关权限信息。
八、mysql的压力测试工具mysqlslap,语法如下:
shell> mysqlslap [options]
mysqlslap按以下三个步骤运行:
1、创建需要被测试的表结构、表或数据。
2、进行测试,模拟多个客户端连接并发执行测试。
3、清空测试数据,这一步骤使用单个客户端进行。
下面有一些例子,如:
shell> mysqlslap --delimiter=";" --create="CREATE TABLE a (b int);INSERT INTO a VALUES (23)" --query="SELECT * FROM a" --concurrency=50 --iterations=200
此命令表示用分号做分隔符,首先创建表a,并插入数据23,然后模拟50个客户端进行200次select查询。最后会得出测试结果。
shell> mysqlslap --concurrency=5 --iterations=20 --number-int-cols=2 --number-char-cols=3 --auto-generate-sql
此命令表示构建有2个int列,3个varchar列的查询语句,模拟5个客户端进行20次查询。
shell> mysqlslap --concurrency=5 --iterations=5 --query=query.sql --create=create.sql --delimiter=";"
此命令与例1类似,只不过构建条件变成执行create.sql文件,测试语句变为执行query.sql文件。
下面是详细的参数列表:
参数 | 描述 | 适用 | 弃用 |
---|---|---|---|
--auto-generate-sql | 自动生成被测试的sql语句 | ||
--auto-generate-sql-add-autoincrement | 增加AUTO_INCREMENT 列到自动生成的表里 | ||
--auto-generate-sql-execute-number=# | 指定自动生成多少查询 | ||
--auto-generate-sql-guid-primary | 增加一个基于GUID的主键 | ||
--auto-generate-sql-load-type=type | 指定测试的语句类型,有read、write、update、mixed。默认是mixed | ||
--auto-generate-sql-secondary-indexes=# | 指定有多少次级索引生成 | ||
--auto-generate-sql-unique-query-number=# | 指定为测试生成多少不同的查询 | ||
--auto-generate-sql-unique-write-number=# | 指定生成多少不同的语句在设置--auto-generate-sql-write-number时 | ||
--auto-generate-sql-write-number=# | 指定每个线程负责多少行的插入 | ||
--commit=# | 指定在提交前有多少声明要执行 | ||
--compress | 同mysql命令 | ||
--concurrency=# | 指定模拟多少客户端同时连线 | ||
--create=value | 指定创建表和数据以供测试的语句 | ||
--create-schema=value | 指定运行测试需创建的表结构 | ||
--csv=[file] | 生成csv结构的输出 | ||
--debug[=debug_options] | 同mysql命令 | ||
--debug-check | 同mysql命令 | ||
--debug-info | 同mysql命令 | ||
--default-auth=plugin | 同mysql命令 | ||
--defaults-extra-file=file_name | 同mysql命令 | ||
--defaults-file=file_name | 同mysql命令 | ||
--defaults-group-suffix=str | 同mysql命令 | ||
--delimiter=str | SQL语句的分隔符 | ||
--detach=# | 在N个声明后关闭然后重新打开连接 | ||
--engine=engine_name | 指定创建表的存储引擎 | ||
--help | 同mysql命令 | ||
--host=host_name | 同mysql命令 | ||
--iterations=# | 运行测试的次数 | ||
--no-defaults | 同mysql命令 | ||
--no-drop | 在测试期间不删除任何表结构 | ||
--number-char-cols=# | 如果 --auto-generate-sql 参数被指定,确定测试时查询的varchar类型的列数 | ||
--number-int-cols=# | 如果 --auto-generate-sql 参数被指定,确定测试时查询的int类型的列数 | ||
--number-of-queries=# | 限制每个客户端的查询数 | ||
--only-print | 不连接到数据库,mysqlslap仅打印它将要执行的语句 | ||
--password[=password] | 同mysql命令 | ||
--plugin-dir=path | 同mysql命令 | ||
--port=port_num | 同mysql命令 | ||
--post-query=value | 在测试完成后将要执行的文件或语句 | ||
--pre-query=value | 在测试前将要执行的文件或语句 | ||
--print-defaults | 同mysql命令 | ||
--protocol=type | 同mysql命令 | ||
--query=value | 设置被测试的查询语句 | ||
--shared-memory-base-name=name | 同mysql命令 | ||
--silent | 同mysql命令 | ||
--socket=path | 同mysql命令 | ||
--sql-mode=mode | 设置sql模式 | 5.7.5 | |
--ssl | 同mysql命令 | ||
--ssl-ca=file_name | 同mysql命令 | ||
--ssl-capath=dir_name | 同mysql命令 | ||
--ssl-cert=file_name | 同mysql命令 | ||
--ssl-cipher=cipher_list | 同mysql命令 | ||
--ssl-crl=file_name | 同mysql命令 | ||
--ssl-crlpath=dir_name | 同mysql命令 | ||
--ssl-key=file_name | 同mysql命令 | ||
--ssl-verify-server-cert | 同mysql命令 | ||
--user=user_name, | 同mysql命令 | ||
--verbose | 同mysql命令 | ||
--version | 同mysql命令 |
九、针对MyISAM表的全文索引信息查看工具myisam_ftdump。具体语法如下:
shell> myisam_ftdump [options] tbl_name index_num
举个例子,首先在test库创建表
CREATE TABLE mytexttable(
id INT NOT NULL,
txt TEXT NOT NULL,
PRIMARY KEY (id),
FULLTEXT (txt)
)ENGINE=MyISAM;
此时txt为全文索引,索引的索引号是1
想查看该索引的信息,运行
shell> myisam_ftdump /usr/local/mysql/data/test/mytexttable 1即可。