首页 > 数据库 >mysql学习笔记

mysql学习笔记

时间:2023-01-05 17:01:18浏览次数:58  
标签:slow show mysql 笔记 学习 索引 MySQL query


1、​​MySQL索引详细介绍​

2、MySql索引实现原理

索引的本质
MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构
提取句子主干,就可以得到索引的本质:索引是一种数据结构。
 
​​​MySQL索引-B+树(看完你就明白了)​​为什么MySQL数据库索引选择使用B+树?

3、索引

​​Mysql创建索引​​

4、explain
从最好到最差的连接类型为system、const、eq_reg、ref、range、indexhe和ALL

​Mysql Explain 详解​​MySQL explain详解

5、​​mysql最佳左前缀原则​​ 6、开启慢查询日志, explain分析, show profile ,数据库参数调优

查看:show variables like ‘%slow_query_log%’;
开启慢查询(只对当前数据库生效,mysql重启后失效):
set global slow_query_log=1;
 
永久生效,修改配置文件【my.cnf】:
[mysqld]
slow_query_log = ON
slow_query_log_file = /var/lib/mysql/logs/slow.log
long_query_time = 1

7、小表驱动大表,小的数据集驱动大的数据集

ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregate

8、show profile

show Profile是mysql提供的可以用来分析当前会话中sql语句执行的资源消耗情况的工具,可用于sql调优的测量。
show profile cpu,block io for query Query_ID;/Query_ID为#3步骤中show profiles列表中的Query_ID/
 
​​MySQL高级知识(十一)——Show Profile​​  

调优参考:

mysql学习笔记_调优


9、​​mysql 全局日志​​ 10、mysql锁机制。读锁,写锁,表锁,行锁。

一般来说,事务是必须满足4个条件(ACID)::原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久(Durability)。

# 手动增加表锁
# lock table 表名字 read(write), 表名字2 read(write),
lock table mylock read;
 
# 查看表上加过的锁:
show OPEN TABLES where In_use > 0;
 
# 释放表锁:
unlock tables;
 
# 如何分析表锁定
show status like 'table%'

# 查看隔离级别
show variables like 'tx_isolation';
# 或者(前者为空,后者执行不成功,环境问题?)
select @@tx_isolation;

mysql学习笔记_mysql_02

# MySQL如何锁定一行?在SQL语句后面加上for update.
select * from tb where a=8 for update

# 查看行锁
show status like 'innodb_row_lock%';

mysql学习笔记_MySQL_03

​​MySQL 四种隔离级别及测试​​​MySQL 事务​​mysql查看锁表方法详解
MySQL常见的七种锁详细介绍
​MySQL锁总结​

11、mysql主从复制


标签:slow,show,mysql,笔记,学习,索引,MySQL,query
From: https://blog.51cto.com/u_15930680/5991560

相关文章

  • docker学习笔记
    Kubernetes(k8s)1、​​干货满满!10分钟看懂Docker和K8S​​​​centos7配置国内yum源​​官网:​​https://www.docker.com/​​​仓库:​​https://hub.docker.com/​​E......
  • android平台解释器+JIT+AOT代码执行学习
    dalvikJIT(Just-In-Time)JIT即时编译,即在代码运行时进行编译。对于dalvik虚拟机而言其检测到执行频率较高的函数时就会进行jit编译将其编译为本地机器码,这样下次此函数执行......
  • RabbitMQ学习笔记03:Work Queues
    参考资料:RabbitMQtutorial-WorkQueues—RabbitMQ   前言这篇文章我们会创建一个WorkQueue,它会在多个worker(即消费者consumer)中分发耗时的任务。WorkQueue......
  • 机器学习-数据预处理
    1.均值移除(标准化)由于一个样本的不同特征值差异较大,不利于使用现有机器学习算法进行样本处理。均值移除可以让样本矩阵中的每一列的平均值为0,标准差为1。确保......
  • shell备份mysql数据库指定表
    1、先执行命令:netstat -ln |grep mysql获取当前mysql的socket  2、执行如下命令备份数据库的指定表mysqldump -hIP-P端口-u数据库用户-p数据库密码--sock=......
  • bug笔记_正常运行但编译报错(未解决)
    项目能正常运行,但是compile的时候会报错Failedtoexecutegoalorg.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile(default-compile)onprojectbank-ms-......
  • IM通讯协议专题学习(七):手把手教你如何在NodeJS中从零使用Protobuf
    1、前言Protobuf是Google开源的一种混合语言数据标准,已被各种互联网项目大量使用。Protobuf最大的特点是数据格式拥有极高的压缩比,这在移动互联时代是极具价值的(因为移动......
  • Android学习day04【Button】
    报错,代码显示运行成功但是无法在模拟机上显示  原因是没有在包含应有id其二是关于设置背景颜色中关于background与backgroundTint的区别//这是backgroundTint的......
  • TypeScripts 学习笔记
    TypeScript是拥有类型的JavaScript超集,它可以被编译成普通、干净、完整的JavaScript代码。一、起步1.TypeScripts的编译环境1.1安装#全局安装npminstalltypes......
  • 一个查找mysql数据库无主键表的脚本
    说明:遍历所有的库表然后查询是否具有主键/bin/bashdb_host=172.19.211.2#dbipdb_name_list="chimessoxrayintcommpultus"#填写db_name支持多个数据库,以空格隔......