mysql 常用命令

  1. 表中设置联合unique
alter table role_function_view_relative add unique(`role_id`,`func_id`);
 
  1.     删除主键
alter table table_test drop primary key;
 
      3.       新增主键 (注:在增加主键之前,必须先把反复的id删除掉 )
alter table table_test add primary key(id);
 
  1.     查询mysql的版本号
                 select version(); 
 
   5. 查看当前会话是否自动提交事务
show variables like "autocommit”;
 
   6. 查看当前会话锁等待超时时间限制,默认为50S
show variables like "Innodb_lock_wait_timeout"
 
 
    7. 查看锁表情况
show status like 'Table%';
-- Table_locks_immediate  指的是能够立即获得表级锁的次数
-- Table_locks_waited  指的是不能立即获取表级锁而需要等待的次数
 
 
    8. 查看正在被锁定的的表
show OPEN TABLES where In_use > 0;
 
  1.  创建索引
        1.添加PRIMARY KEY(主键索引) 
mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 
2.添加UNIQUE(唯一索引) 
mysql>ALTER TABLE `table_name` ADD UNIQUE ( 
`column` 
3.添加INDEX(普通索引) 
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` ) 
4.添加FULLTEXT(全文索引) 
mysql>ALTER TABLE `table_name` ADD FULLTEXT ( `column`) 
5.添加多列索引 
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )
 
 
  1.  添加外键

alter table t_book add constraint `fk` foreign key (`bookTypeId`) references t_booktype(`id`)
 
 
 
11. InnoDB行锁实现方式
 
    InnoDB行锁是通过索引上的索引项来实现的,这一点MySQL与Oracle不同,后者是通过在数据中对相应数据行加锁来实现的。InnoDB这种行锁实现特点意味者:只有通过索引条件检索数据,InnoDB才会使用行级锁,否则,InnoDB将使用表锁!。
 
 
  1. 查询数据库表大小
select
table_schema as '数据库',
table_name as '表名',
table_rows as '记录数',
truncate(data_length/1024/1024, 2) as '数据容量(MB)',
truncate(index_length/1024/1024, 2) as '索引容量(MB)'
from information_schema.tables 
order by  TABLE_ROWS desc
 
 
 
 
SQL优化:
    连接查询 > 嵌套查询: https://www.acfun.cn/v/ac11760731
   
 
SQL逻辑处理顺序:
    
posted @ 2019-12-19 15:40  朝花不夕拾  阅读(217)  评论(0编辑  收藏  举报