细聊MySQL之常用工具及基本操作(三)

时间:2022-01-30 09:44:43

细聊MySQL之常用工具及基本操作(一)

细聊MySQL之常用工具及基本操作(二)

细聊MySQL之常用工具及基本操作(三)

细聊MySQL之常用工具及基本操作(完)


七、使用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之常用工具及基本操作(三)

是表结构的相关信息及用户对表操作的相关权限信息。


八、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即可。

本文出自 “架构师之路” 博客,请务必保留此出处http://wangweiak47.blog.51cto.com/2337362/1586321