数据库常用命令
数据库连接: mysql -u user1 -p –P port -h host
展示所有数据库:show databases;
选中某个数据库:use databasename;
展示所有表:show tables;
查看表结构:desc tablename;
查看创建的表信息:show create table tablename;
查看当前的用户:select user()
查看当前操作的数据库:select database()
查看数据库的运行状态:show status
查看db的参数:show variables;
更新记录:update tablename set xx=k where yy=i
删除某条记录:delete from table where id=x
TRUNCATE TABLE将删除表中的所有记录
==========================================
测试基本上不会用到的命令
创建数据库:create database dbname;
创建表:create table tablename (id
int(4),name
char(40));
查看MySQL表分区是否创建成功
EXPLAIN PARTITIONS SELECT * FROM
TABLENAME
使用EXPLAIN查看语句慢查询
关于慢查询:测试工作能感受的到的时候,还是依赖于测试环境中的存量数据,如果存量数据很少,基本上是测试不出来慢查询的。所以,尽可能的把测试环境的存量数据增加到一定的程度,比如每个表200-300W,这样,平时的功能测试基本上就能感受到耗时超长。
- table:显示这一行的数据是关于哪张表的type列:这是重要的列,显示连接使用了何种类型。从最好到最差的连接类型为const、eq_reg、ref、range、index和ALL
- possible_keys:显示可能应用在这张表中的索引。如果为空,没有可能的索引。可以为相关的域从WHERE语句中选择一个合适的语句
- key:实际使用的索引。如果为NULL,则没有使用索引。很少的情况下,MYSQL会选择优化不足的索引。这种情况下,可以在SELECT语句中使用USE
INDEX(indexname)来强制使用一个索引或者用IGNORE INDEX(indexname)来强制MYSQL忽略索引- key_len:使用的索引的长度。在不损失精确性的情况下,长度越短越好
- ref:显示索引的哪一列被使用了,如果可能的话,是一个常数
- rows:MYSQL认为必须检查的用来返回请求数据的行数
- Extra列:关于MYSQL如何解析查询的额外信息。