mysql

MySQL中的锁机制

发布于:2018-05-02

MySQL中锁类型分类概述 按锁的粒度可划分为:表锁、行锁、页锁 按锁的机制可划分为:乐观锁、悲观锁 按锁的兼容性可划分为:共享锁、排他锁 按锁的算法模式可划分为:记录锁、间隙锁、临键锁、意向锁、插入意向锁 锁粒度 表锁 表锁的锁定颗粒度在MySQL中是最粗的,InnoDB、MyISAM引擎中都有应用,对当前整张表加锁。 表锁不适合高并发的场景,但开销小,加锁快,不会出现死锁,发生锁冲突的概率最大。 手动加锁方式: LOCK TABLES xx READ/WRITE; 行锁 行锁的锁定颗粒度在MySQL中是最细的,应用于InnoDB存储引擎,只针对操作的当前行进行加锁。并发情况下,产生锁等待的 …...

进入阅读

MySQL高可用架构

发布于:2016-08-23

前言 Mysql数据库作为最基础的数据存储服务之一,在整个系统中有着非常重要的地位,因此要求其具备高可用性是无可厚非的。有很多解决方案能实现不同的SLA(服务水平协定),这些方案可以保证数据库服务器在硬件或软件出现故障时服务继续可用。 理解高可用系统 高可用,英文叫High Availability(Wikipedia词条),基本上来说,就是要让我们的计算环境(包括软硬件)做到full-time的可用性。在设计上一般来说,需要做好如下的设计: 对软硬件的冗余,以消除单点故障。任何系统都会有一个或多个冗余系统做standby 对故障的检测和恢复。检测故障以及用备份的结点接管故障点。这也就 …...

进入阅读

Mysql查询执行计划—Explain

发布于:2016-04-06

explain 在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句。找出这些SQL语句并不意味着完事了,我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描。所以我们深入了解MySQL的基于开销的优化器,还可以获得很多可能被优化器考虑到的访问策略的细节,以及当运行SQL语句时哪种策略预计会被优化器采用。 explain语法和示例 explain select * from servers; …...

进入阅读

MYSQL主从架构

发布于:2016-01-04

MySQL主从复制 随着数据量不断的增加,由单台Mysql作为独立的数据库有的时候是不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面。因此,一般来说都是通过主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy)来提升数据库的并发负载能力这样的方案来进行部署与实施的。 使用mysql主从复制的好处有: 采用主从服务器这种架构,稳定性得以提升。如果主服务器发生故障,我们可以使用从服务器来提供服务。 在主从服务器上分开处理用户的请求,可以提升数据处理效率。 将主服务器上的数据复制到从服务器上,保护数据免受意外的损失。 主从复制原理 复制过程 …...

进入阅读

MySQL索引原理

发布于:2015-12-24

索引的本质 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构。 数据库查询是数据库的最主要功能之一。我们都希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度进行优化。 最基本的查询算法当然是顺序查找(linear search),这种复杂度为O(n)的算法在数据量很大时显然是糟糕的,好在计算机科学的发展提供了很多更优秀的查找算法,例如二分查找(binary search)、二叉树查找(binary tree search)等。 如果稍微分析一下会发现,每种查找算法都只能应用于特定的数 …...

进入阅读

MYSQL中InnoDB和MyISAM存储引擎的区别

发布于:2013-10-08

前言 为了适应各种不同的运行环境,MYSQL提供了多种不同的存储引擎,在应用程序开发这个层面上,开发者可以根据不同的需求选择适合的存储引擎方案,更为灵活的是,你可以根据每张表将要存储数据的特点,选择不同的存储引擎,也就是说,在一个MYSQL数据库中,可以混合使用多种不同的存储引擎。InnoDB和MyISAM是在使用MySQL最常用的两个存储引擎,各有优缺点,视具体应用而定。 MyISAM 这个是默认类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法.与其他存储引擎比 …...

进入阅读

MYSQL索引理解和应用

发布于:2013-08-18

什么是索引 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。索引的目的在于提高查询效率,对相关列使用索引是提高SELECT操作性能的最佳途径。 索引的优点 创建唯一性索引,保证数据库表中每一行数据的唯一性。 大大加快数据的检索速度,这也是创建索引的最主要的原因。 加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。 通过使用索引,可以在查询的过程中使用优化隐藏器,提高系统的性能。 索引的缺点 索引可以加快数据检索操作,但会使数据修 …...

进入阅读

MYSQL中UNIX时间戳与日期的相互转换

发布于:2013-06-18

前言 在MYSQL数据库中时间字段的存储通常采用时间戳的格式,但是这一格式在查询时并不直观易读,所以通常会在查询的时候将时间戳格式转换为普通的日期格式。相反的,在交互页面,用户的输入都是普通的时间格式,那么在存储进数据库时同样存在需要转换成时间戳格式的问题,本文就介绍这一相互转换。 MYSQL中转换 UNIX时间戳转换为日期用函数: FROM_UNIXTIME() select FROM_UNIXTIME(1156219870); 日期转换为UNIX时间戳用函数: UNIX_TIMESTAMP() Select UNIX_TIMESTAMP("2006-11-04 …...

进入阅读

MySQL Show命令的使用

发布于:2012-02-07

MySQL show在实际的应用中是常用于查询数据库的表结构,状态,帐号信息,日志情况,错误信息等等,以下的文章就是对MySQL show的实际操作用法的介绍。 #显示当前数据库中所有表的名称 show tables; show tables from database_name; #显示mysql中所有数据库的名称 show databases; #显示系统中正在运行的所有进程,也就是当前正在执行的查询。 show processlist; #显示当前使用或者指定的database中的每个表的信息。信息包括表类型和表的最新更新时间。 show table status; # …...

进入阅读

分类

开发
    --go (9)
    --java (5)
    --php (11)
    --mysql (9)
    --javascript (3)
    --html (1)
    --算法 (6)
架构
    --理论 (9)
    --网络 (3)
    --服务器 (2)
    --消息队列 (3)
    --容器 (5)
    --监控 (1)
    --搜索引擎 (3)
    --大数据 (0)
    --测试 (1)
系统
    --linux (10)
    --mac (2)
    --windows (1)
足球
    --世界杯 (60)
    --欧洲杯 (28)
    --文迷 (3)
大学时光
    --校园生活 (96)
    --假期生活 (17)
    --广院杯那些事 (14)
    --北京奥运 (6)
    --胡思乱写 (17)


最近发布

零拷贝技术介绍

服务网格技术简介

C语言标准和标准库简介

Kubernetes简介及环境搭建

Go语言开发的顶级项目


归档

2006 (109)
2007 (40)
2008 (47)
2009 (10)
2010 (6)
2012 (10)
2013 (14)
2014 (27)
2015 (15)
2016 (6)
2017 (8)
2018 (11)
2019 (17)
2020 (5)