一文了解Mysql】的更多相关文章

一文了解MySQL性能测试及调优中的死锁处理方法,你还看不明白? 以下从死锁检测.死锁避免.死锁解决3个方面来探讨如何对MySQL死锁问题进行性能调优. 死锁检测 通过SQL语句查询锁表相关信息: (1)查询表打开情况 SHOW OPEN TABLES WHERE IN_USE> 0 (2)查询锁情况列表 SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS (3)查询锁等待信息,其中blocking_lock_id是当前事务在等待的事务 SELECT *…
MySQL 事务基础概念 事务(Transaction)是访问和更新数据库的程序执行单元:事务中可能包含一个或多个 sql 语句,这些语句要么都执行,要么都不执行.作为一个关系型数据库,MySQL 支持事务,本文介绍基于 MySQL 5.6.首先回顾一下 MySQL 事务的基础知识. 逻辑架构和存储引擎 如上图所示,MySQL 服务器逻辑架构从上往下可以分为三层: 第一层:处理客户端连接.授权认证等. 第二层:服务器层,负责查询语句的解析.优化.缓存以及内置函数的实现.存储过程等. 第三层:存储…
说起MySQL的查询优化,相信大家收藏了一堆奇技淫巧:不能使用SELECT *.不使用NULL字段.合理创建索引.为字段选择合适的数据类型..... 你是否真的理解这些优化技巧?是否理解其背后的工作原理?在实际场景下性能真有提升吗?我想未必.因而理解这些优化建议背后的原理就尤为重要,希望本文能让你重新审视这些优化建议,并在实际业务场景下合理的运用. MySQL逻辑架构 如果能在头脑中构建一幅MySQL各组件之间如何协同工作的架构图,有助于深入理解MySQL服务器.下图展示了MySQL的逻辑架构图…
文章原创于公众号:程序猿周先森.本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号. Redis系列到上一篇已经全部结束了,从本篇开始进入Mysql系列文章专题.本篇作为Mysql系列专题的开篇文章,主要是一文带大家大致了解什么是Mysql.本篇文章主要涉及的内容有: 什么是数据库? 数据库中的几个基本术语? Mysql中InnoDB引擎支持的4种事务隔离级别 Mysql中如何使用ENUM? Mysql中的存储引擎 mysql中char与varchar的区别? 主键和候选键的区别? blob…
开篇说明 (1) 本文将细致介绍MySQL的explain工具,是下一篇<一文读懂MySQL的索引机制及查询优化>的准备篇. (2) 本文主要基于MySQL5.7版本(https://dev.mysql.com/doc/refman/5.7/en/),MySQL8.x版本可另行翻阅对应版本文档(https://dev.mysql.com/doc/refman/8.0/en/). (3) 演示过程中的建库.建表.建索引等语句仅为了测试explain工具的使用,并未考虑实际应用场景的合理性. ex…
原文转自:http://hedengcheng.com/?p=771 背景 MySQL/InnoDB的加锁分析,一直是一个比较困难的话题.我在工作过程中,经常会有同事咨询这方面的问题.同时,微博上也经常会收到MySQL锁相关的私信,让我帮助解决一些死锁的问题.本文,准备就MySQL/InnoDB的加锁问题,展开较为深入的分析与讨论,主要是介绍一种思路,运用此思路,拿到任何一条SQL语句,都能完整的分析出这条语句会加什么锁?会有什么样的使用风险?甚至是分析线上的一个死锁场景,了解死锁产生的原因.…
经常提到数据库的事务,那你知道数据库还有事务隔离的说法吗,事务隔离还有隔离级别,那什么是事务隔离,隔离级别又是什么呢?本文就帮大家梳理一下. MySQL 事务 本文所说的 MySQL 事务都是指在 InnoDB 引擎下,MyISAM 引擎是不支持事务的. 数据库事务指的是一组数据操作,事务内的操作要么就是全部成功,要么就是全部失败,什么都不做,其实不是没做,是可能做了一部分但是只要有一步失败,就要回滚所有操作,有点一不做二不休的意思. 假设一个网购付款的操作,用户付款后要涉及到订单状态更新.扣库…
前言: 在使用MySQL的过程中,你可能会遇到时区相关问题,比如说时间显示错误.时区不是东八区.程序取得的时间和数据库存储的时间不一致等等问题.其实,这些问题都与数据库时区设置有关,本篇文章将从数据库参数入手,逐步介绍时区相关内容. 1.log_timestamps参数介绍 首先说明下log_timestamps参数并不影响时区,只是设置不同会影响某些日志记录的时间.该参数主要是控制 error log.slow log.genera log 日志文件中的显示时间,但不会影响 general l…
正式开始之前,我们先来看下 MySQL 服务器的配置和版本号信息,如所示: select version(); -- 版本为 8.0.22 "兵马未动粮草先行",看完了相关的配置之后,我们先来创建一张测试表和一些测试数据. -- 如果存在 person 表先删除 DROP TABLE IF EXISTS person; -- 创建 person 表,其中 username 字段可为空,并为其设置普通索引 CREATE TABLE person ( id INT PRIMARY KEY…
摘要:Innodb 存储引擎设计了一个缓冲池(Buffer Pool),来提高数据库的读写性能. 本文分享自华为云社区<MySQL 的 Buffer Pool,终于被我搞懂了>,作者:小林coding . 今天就聊 MySQL 的 Buffer Pool,发车! 为什么要有 Buffer Pool? 虽然说 MySQL 的数据是存储在磁盘里的,但是也不能每次都从磁盘里面读取数据,这样性能是极差的. 要想提升查询性能,加个缓存就行了嘛.所以,当数据从磁盘中取出后,缓存内存中,下次查询同样的数据的…