MYSQL常用语句
show open tables where in_use > 0
查看是否锁表
show idexes from xxx
查看索引
show global variables like ''
查看系统变量
show open tables where
查看打开的表
show grants fro user
查看权限
show processlists
查看线程
show global status like ''
查看服务器状态
show table status from database
查看表状态
show triggers;
查看触发器
mysqld_safe --defaults-file=/my.cnf --user=mysql
启动数据库
create table 表名 as select * from 表名2
创建一个跟表2相同的表 包括数据
create table 表名 as select * from 表名2 where 1=2
创建一个跟表2相同的表 数据为空
mysqladmin -uroot -p -S shutdown
关闭数据库
select table_schema ,table_name,data_free,engine from information_schema not in ('information_schema','mysql') and data_free > 00
查看碎片
optimize table table_name alter
alter table table_name engine =innodb
清理碎片
select table_schema,table_name,enfine from information_schema.tables where engine <>'innodb' and table_schema=''
查看不是innodb引擎的表
select table_name
from
information_schema.tables
where
table_shcema = '数据库名'
and table_name not in (
select
table_name
from
information_schema.table_constraints a
join
information_schemation.key_column_usage b (constraint_name,table_schema,table_name)
where
a.constraint_type = 'PRIMARY KEY' and a.table_schema = '数据库名'
);
查看没有主键的表
alter table 子表名 add constraint 外键名 foreign key (子表字段) references 父表(字段)
外键约束
alter database 库名 character set utf8 collate utf8_general_ci;
修改库字符集
alter table 表名 add index 索引名字(字段名字);
添加主键名字
alter table 表名 add unique key 索引名字(字段名字);
添加唯一键
alter table 表名 add index 索引名字(字段(n));
前缀索引 注意:创建索引会排序,数据多的列会用前缀索引。
alter table 表名 add index 索引名字(字段,字段);
多字段用一个索引
.alter table 表名 drop 索引名字;
删除索引
alter table 表名 character set uft8;
修改表字符集
.alter table 表名 add 字段名称 字段类型 是否允许非空;
添加表字段以及属性
alter table 表名 drop 字段名称;
删除表字段
alter table 表名 change 原字段名称 字段名称 字段类型 是否非空;
alter table 表名 modify column (字段1 类型,字段2 类型………);
修改表字段名字以及属性
alter table 原表名 rename to 新表名
修改表名
alter table 表名 drop primary key;
删除表中主键
grant all on *.* to root@'%' identified by '密码' with grant option;
创建用户root以任意网段链接并所有权限 超级用户
revoke select on *.* from root@'%';
删除root用户查询权限
select 表名1.表字段,表2.表字段 ...from 表1,表2 where 条件;
传统连接查询多表
select 表名1.表字段,表2.表字段 ...from 表1 natural join 表2 where 条件;
自链接表查询
select 表名1.表字段,表2.表字段 ...from 表1 join 表2 on 等价条件 where 条件;
多表连接查询 内连接
select 表名1.表字段,表2.表字段 ...from 表1 left join 表2 on 等价条件 and 条件;
外左连接多表查询
select 表名1.表字段,表2.表字段 ...from 表1 right join 表2 on 等价条件 and 条件;
外右链接多表查询
1. select * from 表 where 表字段='' or 表字段='';
2. select * from 表 where 表字段='' union all select * from 表 where 表字段='';
2.查询效率高 注:union 去重复查询 union all 不去重重查询
select 字段 from 表 like '%' limit 10;
模糊查询
select count(distinct(字段)) from 表名;
统计字段函数去重复
update 表名 set 字段=' ' where 条件;
修改表字段内容
delete from 表明 where 条件;
删除行
alter table 表名 discard tablespace;
删除表空间
alter table 表名 import tablespace;
添加表空间
mysqlbinlog --base64-output=decode-rows /application/mysql/data/mysql-bin.00001
show master status;
查询二进制日志
flush logs;
刷新二进制日志
show binlog events in 'mysql-bin.000003'
查询二进制日志00003内容
show binary logs;
查询二进制大小
mysqlbinlog --start-position=120 --stop-position=992 /application/mysql/data/mysql-bin.000001 >/tmp/test_binlog.sql
pt-query-digest /application/mysql/data/low.log
截取二进制文件
innobackupex --user=root --password=123 --no-timestamp /backup/full
全备份
change master to
master_host='10.0.0.51',
master_user='rep',
master_password='123',
master_log_file='mysql-bin.000007',
master_log_pos=120;
start slave;
show slave status\G
启动主从