细聊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的压力测试工具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即可。

时间: 2024-10-28 10:55:27

细聊MySQL之常用工具及基本操作(三)的相关文章

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

接细聊MySQL之常用工具及基本操作(一) 四.客户端管理工具mysqlcheck的使用.mysqlcheck是客户端表维护工具,可以检查.修复.优化或分析表. 如 shell> mysqlcheck databasename tablename [options] databasename为数据库名 tablename为表名 如果你只指定databasename,通常会检查databasename下所有的表.如果你既不指定databasename,也不指定tablename,那么一定要添加参数

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

一.对于MySQL用户来说,使用MySQL的第一步就是启动它.要启动MySQL,我们需要mysqld或mysqld_safe命令.默认情况下,直接执行mysqld或mysqld_safe即可.如 shell> mysqld & 或 shell> mysqld_safe &.当然不是所有事情都那么顺利,如果启动不了,请指定相关的参数.服务器运行的前提是你已经执行了mysql_install_db脚本.当然,如果就这样启动,将有很多功能启动不了.如没有binlog,当某一天你不小心

细聊MySQL的Innodb存储引擎(完)

细聊MySQL的Innodb存储引擎(一) 细聊MySQL的Innodb存储引擎(二) 细聊MySQL的Innodb存储引擎(完) 上篇主要和大家探讨了Innodb引擎中出现幻读的处理方法与死锁的探测及避免死锁的一些注意事项.此篇,我们来研究下Innodb的索引. Innodb里涉及到的索引主要有四种,分别为聚簇索引(Clustered Index).次级索引(Secondary Index).全文索引(FULLTEXT Index).哈希索引(Hash Index). 聚簇索引与次级索引 每一

细聊MySQL的Innodb存储引擎(二)

细聊MySQL的Innodb存储引擎(一) 上一篇主要和大家探讨了下Innodb的锁机制与隔离机制.本篇来和大家一起研究下在使用Innodb是会出现的问题以及如何解决它们. Innodb是如何解决幻读问题的 什么是幻读?听起来似乎很高端,但实际上它只是反映了事务中的一种数据不一致的情况.下面看我来描述这样一个场景,通过这个场景,大家就能很清楚的知道幻读到底是什么意思. 打开两个客户端,设为A和B A客户端 mysql> start transaction; (步骤一) Query OK, 0 r

java常用工具类(三)—— Excel 操作工具

import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; i

细聊MySQL的备份与恢复

备份对于数据库来说是相当重要的工作.如果数据库在使用过程中出现了问题,比如系统崩溃.硬件故障或错误的删除了数据.这时,如果我们进行了数据备份,就能比较方便的使数据库恢复工作,并使我们的数据损失到最小.下面,我从备份类型.备份方法及一些常用的例子来和大家详细探讨下数据库的备份与恢复. 一.备份类别 1.物理备份与逻辑备份 物理备份用人话来形容就是复制数据库的数据文件.如果我们需要备份名为test的数据库,则我们可以将数据目录下的test目录复制到备份设备中.如果我们需要备份test库下名为user

细聊MySQL的分区功能

此篇主要介绍下MySQL的分区功能.我们分别从分区的概念.分区对于MySQL应用的优点.分区的类别及设置来和大家一起探讨下MySQL的分区. 什么是分区? MySQL在未启用分区功能时,数据库的单个表内容是以单个文件的形式存放在文件系统上的.当启用分区功能后,MySQL将按用户指定的规则将单个表内容分割成几个文件存放在文件系统上.分区分为水平分区和垂直分区,水平分区是将表的数据按行分割成不同的数据文件,而垂直分区则是将表的数据按列分割成不同的数据文件.分片要遵循完备性原则.可重构性原则与不相交原

细聊MySQL的安全机制

MySQL作为系统的数据库,在安全性方面有非常高的要求.如果一个系统的数据库被非法进入或窃听,则系统的数据将受到非常严重的威胁,轻则数据.密码被盗,重则导致整个系统瘫痪.所以数据库的安全对于系统来说是非常重要的. 本文将从MySQL的服务器启动与客户端访问.操作及链路三方面来阐述MySQL的安全机制. 一.MySQL的服务器启动与客户端访问.        1.服务器启动,启动服务器在安全方面的影响主要是启动它的用户.默认情况下,MySQL不允许使用root账号启动.我们应该建立一个只能操作My

细聊MySQL的Innodb存储引擎(一)

从MySQL5.5开始,Innodb就成为MySQL的默认存储引擎了.可想而知,Innodb已经成为MySQL的主要生产方式.那Innodb到底有什么本事能够击败其它几位存储引擎而荣登宝座呢?下面,我就来和大家一起探讨探讨牛逼的Innodb引擎.Innodb涉及到的知识点比较多,所以我会分几篇来叙述,此篇主要介绍Innodb的基本概念和架构. 要了解Innodb,首先需要了解MySQL的ACID模型.何为ACID?ACID指的是事务的原子性(A).一致性(C).隔离性(I).持久性(D). 原子