首页 > 数据库 >Mysql数据库部分管理命令极简学习总结

Mysql数据库部分管理命令极简学习总结

时间:2022-11-23 00:35:06浏览次数:30  
标签:极简 显示 show -- 数据库 SHOW Mysql MySQL

背景

今天遇到一个得很奇怪的问题.
Mysql一个运行时间很长的select阻塞了对select里面左连接表做create index 操作的SQL

当时感觉不应该, 一直以为读锁不会与独占更新锁互斥.
经过与公司数据库大牛沟通, 得出结论如下:
在mysql做ddl语句的时候一定要特别小心
select语句会执有表的MDL_SHARED_READ(SR)锁,
而DDL语句在opening tables阶段会需要MDL_SHARED_NO_WRITE(SNW)锁,
在RENAME阶段更会需要MDL_EXCLUSIVE锁(X),而SR锁与X锁是互斥的。
mysql采用online ddl解决。

感悟

数据结构是产品里面非常核心的内容
需要有优秀的设计和良好的扩展性.
理论上不能随意进行数据结构的修改.
数据库表的索引必须有意义,不能随意设置.

非常不建议在发版中间修改数据库的数据结构.
更新会很慢, 也容易导致数据库不稳定,性能衰退.

不同数据库的限制,区别,性能表现差异非常巨大.
如果确定要支持一种数据库,必须有相应的专家团队来支持.

MySQL-Show命令学习

mysql show命令可以获取数据库的很多特性,非常值得学习.
一个最简单的学习笔记:
1、查询数据库             
   SHOW DATABASES;
2、查询数据库中表
   SHOW TABLES;
   SHOW TABLES FROM db;
3、查询表索引
   SHOW INDEX FROM table
4、查询表中的列
   SHOW [FULL] COLUMNS FROM tb1 FROM db_test;
   SHOW [FULL] COLUMNS FROM db_test.tb1;
5、显示当前使用或者指定的database中的每个表的信息
   SHOW TABLE STATUS;
6、显示系统中正在运行的所有进程,也就是当前正在执行的查询
   SHOW [FULL] PROCESSLIST

MySQL-show命令学习-加强版1

show variables; -- 显示系统变量的名称和值。
show processlist; -- 显示系统中正在运行的所有进程,也就是当前正在执行的查询。
show table status; -- 显示当前使用或者指定的database中的每个表的信息。信息包括表类型和表的最新更新时间。
show privileges; -- 显示服务器所支持的不同权限。
show create database database_name; -- 显示create database 语句是否能够创建指定的数据库。
show create table table_name; -- 显示create table 语句是否能够创建指定的数据表。
show engies; -- 显示安装以后可用的存储引擎和默认引擎。
show innodb status; -- 显示innoDB存储引擎的状态。
show logs; -- 显示BDB存储引擎的日志。
show warnings; -- 显示最后一个执行的语句所产生的错误、警告和通知。
show errors; -- 只显示最后一个执行语句所产生的错误。

MySQL-mysqlshow命令

mysqlhow命令在使用rpm包安装mysql数据库时可能会自动个安装上.
可以如此查看
which mysqlshow 会发现一般安装再/bin/mysqlshow
可以使用 mysqlshow --help 的方式查看帮助: 
一个简单的结果为:
-h:MySQL服务器的ip地址或主机名;
-u:连接MySQL服务器的用户名;
-p:连接MySQL服务器的密码;
--count:显示每个数据表中数据的行数;
-k:显示数据表的索引;
-t:显示数据表的类型;
-i:显示数据表的额外信息。
比如可以通过一个命令查看所有表的行数. 
mysqlshow -h 10.110.136.37 -u root -p -k xxxx2103mysql --count >count.txt

一个比较简单的效果为:
Database: xxxx2103mysql
+---------------------------------+----------+------------+
|             Tables              | Columns  | Total Rows |
+---------------------------------+----------+------------+
| accesspoint                     |       12 |          0 |
| admdivision                     |        7 |          0 |
| amactcacheindexfield            |        8 |       2539 |
| amactcacheset                   |       22 |         15 |

MySQL获取锁以及处理锁

可以通过show processlist 的方式获取进程信息
然后执行kill pid 的方式进行解锁
但是如果比较多 可能稍微复杂一些. 这个时候可以使用如下命令来处理.
使用 -e 命令的方式执行命令获取所有的连接信息
mysql -uroot -p -h 10.110.136.37 -e "show processlist"  >process.list
然后可以执行命令
for i in `cat process.list |grep -i locked |awk '{print $1}'` ; 
do
echo "kill $i ;" >>killprocess.sql ;
done

可以使用source 也可以使用 执行 执行就可以了.

标签:极简,显示,show,--,数据库,SHOW,Mysql,MySQL
From: https://www.cnblogs.com/jinanxiaolaohu/p/16916995.html

相关文章

  • 《数据库原理及应用》PPT整理第2章数据模型
                                               ......
  • mysql
    查询语句:添加语句:删除语句:更新语句:mysql数据的约束案例:表与表的关系:一对一:添加外键进行连接,任意一方添加外键,并关联另一方的主键,主键唯一。一对多:在多的一方......
  • 在当前目录下有个hello.txt文件,请编写程序读入文件的内容,并写到数据库mydb中间的表格F
    此题考察的对JDBC连接数据库以及IO读写操作的熟练程度代码如下:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compa......
  • Mysql-约束
    droptableifexistsemp;CREATEtableemp(idINTPRIMARYKEYauto_increment,--员工id,自增长enameVARCHAR(50)NOTNULLUNIQUE,--员工姓名,非空且唯一joi......
  • MySQL进阶实战1,数据类型与三范式
    一、选择优化的数据类型MySQL支持的数据类型非常多,选择正确的数据类型对于获得高性能至关重要。1、更小的一般情况下,应该尽量使用较小的数据类型,更小的数据类型通常更快......
  • freecplus框架-MySQL数据库操作
    文章目录​​一、源代码说明​​​​二、概述​​​​三、connection类​​​​四、sqlstatement类​​​​五、程序流程​​​​1、无结果集SQL的程序的流程​​​​2、有......
  • freecplus框架-Oracle数据库操作
    文章目录​​一、源代码说明​​​​二、概述​​​​三、connection类​​​​四、sqlstatement类​​​​五、程序流程​​​​1、无结果集SQL的程序的流程​​​​2、有......
  • MySQL基础知识
    今日内容概要数据操作的发展过程数据库相关知识数据库的分类MySQL的下载及使用SQL与NoSQLSQL的基本语句今日内容详细数据操作的发展过程最初是通过文档存储,文档......
  • 关于若依框架后台数据库中午乱码 MySQL8.0 中文乱码
    --查看字符集编码设置为以下showVARIABLESlike'CHARACTER%'setcharacter_set_results=utf8mb4;character_set_client utf8mb4character_set_connection utf8......
  • Python基础之数据库:1、数据库发展史及常用数据库的介绍
    Python基础之数据库目录Python基础之数据库一、储存数据演变史1、文本文件2、软件开发目录规范3、数据库二、数据库软件应用史三、数据库的本质四、数据库的分类1、关系......