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 也可以使用 执行 执行就可以了.
Mysql数据库部分管理命令极简学习总结的更多相关文章
- MySQL数据库grant授权命令
MySQL数据库grant授权命令 制作人:全心全意 grant授权命令的使用 grant授权命令使用语法: grant 权限 on 数据库对象 to 用户 grant 权限 on 数据库对象 to ...
- 查看MySQL数据库表的命令介绍
如果需要查看MySQL数据库中都有哪些MySQL数据库表,应该如何实现呢?下面就为您介绍查看MySQL数据库表的命令,供您参考. 进入MySQL Command line client下查看当前使用的 ...
- MySQL数据库操作常用命令
MySQL数据库操作常用命令DOS连接数据库1.安装MySQL配置好环境2.运行cmd命令net start mysql3.找到mysql文件根目录输入命令mysql -h localhost -u ...
- MySQL数据库权限管理
# MySQL数据库权限管理 ### 前言------------------------------ 对不同的用户赋予不同级别的访问权限是个好习惯- 杜绝一些恶意用户 ### 参考资料------- ...
- Python全栈 MySQL 数据库(SQL命令大全、MySQL 、Python调用)
为了梦想与了信仰 开局一张图 主要三个方面: 1.Linux终端命令 2.MySQL语句 3.Python调用 先删库 再跑路..... ...
- 今天学习到的关于mysql数据库的linux命令
1. 登录mysql数据库: mysql -uroot -p 2.安装会提示的mysql的数据库软件:mycli sudo apt-get install mycli 3.安装依赖包: sudo ap ...
- MySQL数据库应用 从入门到精通 学习笔记
以下内容是学习<MySQL数据库应用 从入门到精通>过程中总结的一些内容提要,供以后自己复现使用. 一:数据库查看所有数据库: SHOW DATABASES创建数据库: CREATE DA ...
- MYSQL 数据库导入导出命令
MySQL命令行导出数据库 1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 如我输入的命令行:cd C:\Program Files\MySQL\MySQL Serve ...
- MySql数据库4【命令行赋权操作】
MySQL 赋予用户权限命令的简单格式可概括为:grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利. grant selec ...
- MYSQL 数据库导入导出命令
在不同操作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况发生.所以一般推荐用SQL脚本形式导入.下面分别介绍两种方法. MySQL命令行导出数据库 1,进入MySQL目录下的bin ...
随机推荐
- 一图看懂CodeArts Deploy 5大特性,带你玩转部署服务
摘要:华为云自动化部署服务,助力企业安全.高效生产! 华为云持续部署服务CodeArts Deploy,通过模块化自由编排部署流程,实现软件的自动化部署,基于其易入门.功能全.集成度高.自动化.可靠的 ...
- “绝影”机器狗如何利用ModelArts强化学习算法更改导航轨迹
摘要:利用ModelArts平台云端协同进行强化学习AI能力部署,导航机器狗绕开火焰关闭可燃气体开关灭火. 在刚刚结束的HC Keynote中,为大家演示了基于华为ModelArts和Atlas 20 ...
- 打破“双十定律”,华为云AI推动超级抗菌药Drug X研发加速
摘要:学科交叉已经逐渐变成了科技创新的一个主要源泉,成为这个科学时代一个不可替代的研究范式.在科技与技术合力赋能之下,中国科研人创新奋斗再出新成果,人类与病菌的博弈因此有了新武器. 本文分享自华为云社 ...
- What?构造的查询语句会导致堆栈溢出
摘要:本文归纳了Neo4j和Nebula两个开源图数据库的两个pull request修复的堆栈溢出问题,并试着写写通过阅读pr中的问题而得到的一些启发 本文分享自华为云社区<巧妙构造的查询语句 ...
- 列存Delta表是个什么东东
摘要:本文从delta表的概念.来历.用法.开启后的影响,delta表数据转移到主表几个方面做了详细的介绍. 本文分享自华为云社区<GaussDB(DWS) 列存delta表的简单介绍>, ...
- COG云原生优化遥感影像,瓦片切分的最佳实践
摘要:云上遥感影像文件Cloud optimized GeoTIFF(COG)格式的详细介绍,大量数据上云面临的挑战,并分享了获得云原生影像最佳性能的实践经验. 本文分享自华为云社区<COG云原 ...
- 什么是 A/B 实验,为什么要开 A/B 实验?
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 1.什么是 A/B 实验 A/B 实验也被称为 A/B 测试,实验的基本思路是在线上流量中取出一小部分(较低风险) ...
- 火山引擎 DataLeap:3 小时分享,体系化讲透企业数据治理如何做?
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 数据治理伴随着数据全生命周期的进程,涉及事前规范检查.事中监控管理.事后优化复盘等过程,关键重点领域包括数据质量的 ...
- Solon2 之基础:三、启动参数说明
启动参数,在应用启动后会被静态化(为了内部更高效的利用).比如,想通过体外扩展加载配置,是不能改掉它们的. 1.启动参数 启动参数 对应的应用配置 描述 --env solon.env 环境(可用于内 ...
- Solon2 开发之插件,三、插件体外扩展机制(E-Spi)
插件体外扩展机制,简称:E-Spi.用于解决 fatjar 模式部署时的扩展需求.比如: 把一些"业务模块"做成插件包放到体外 把数据源配置文件放到体外,方便后续修改 其中, .p ...