• 进入"运维那点事"后,希望您第一件事就是阅读“关于”栏目,仔细阅读“关于Ctrl+c问题”,不希望误会!
SQL编程:权限和服务器锁

SQL编程:权限和服务器锁

MySQL权限管理 权限管理主要是对登录到MySQL的用户进行权限验证,所有用户的权限都存储在MySQL的权限表中,不合理的权限规划会给MySQL服务器带来安全隐患。数据库管理员要对所有用户的权限进行合理规划管理。MySQL权限系统的主要功能时证实连接到一台给定主机的用户,并且赋予该用户在数据库上的SELECT/INSERT/UPDATE和DELETE权限。……

MySQL InnoDB事务隔离级别

MySQL InnoDB事务隔离级别

一、事务隔离级别 一个支持事务的关系型数据库必须要必备ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性),今天我们就来说说其中 Isolation,也就是“隔离性”。当数据库上有多个事务同时执行的时候,就可能出现脏读(dirty read)、不可重复读(non-repeatabl……

MySQL InnoDB事务编写语法

MySQL InnoDB事务编写语法

一、事务控制语句 对于一个事务存储引擎来说如果没有明确启动一个事务,默认是能实现自动提交每一个操作都能直接提交。而MySQL默认采用自动提交模式。也就是说,在 InnoDB 中,所有的用户操作均是以事务方式处理的如果不是显式地开始一个事务,每个 SQL 语句将以一个单独的事务来处理。MySQL 通常是以自动提交方式建立一个服务连接的。查看变量autocomm……

MySQL InnoDB单机事务原理

MySQL InnoDB单机事务原理

一、事务简介 事务(transaction)是数据库区别于文件系统的一个重要特性,事务意为一系列操作的集合,具有 ACID 的特性,能将数据库从一个一致的状态转换到另一个状态。 简单说事务就是由一组 SQL 语句组成的一个执行单元,在这组执行单元中的所有语句要么全部执行成功,要么全部执行失败。 在 MySQL 中,InnoDB 存储引擎支持事务操作,这里也主……

SQL编程:数据库和表管理

SQL编程:数据库和表管理

一、数据库管理 MySQL安装并初始化之后,默认会有几个数据库(mysql、information_schema、performance_schema)都是初始化产生的数据库,MySQL 5.7新增了sys库,每个库的具体作用后面介绍。然后首先需要自定义数据库,这是使用MySQL各种功能的前提,下面介绍数据的基本操作,主要内容包括:创建数据库、删除数据库以及……

MySQL InnoDB历史与架构

MySQL InnoDB历史与架构

一、InnoDB存储引擎 InnoDB是事务安全的MySQL存储引擎,设计上采用了类似于Oracle数据库的架构。通常来说,InnoDB存储引擎时OLTP应用中核心表的首选存储引擎。同样,也正是因为InnoDB的存在,才使MySQL数据库变得更有魅力。目前InnoDB属于MySQL默认存储引擎,并且在MySQL 8.0开始,包括元数据表也都是使用InnoDB……

MySQL InnoDB事务并发异象

MySQL InnoDB事务并发异象

试想,事务如果都是串行的,那么就不需要锁了,但是性能肯定没法接受。加锁只是为了提高事务并行度,并且解决并发事务执行过程中引起的脏写、脏读、不可重复读、幻读这些问题的一种解决方案(MVCC算是一种解决脏读、不可重复读、幻读这些问题的一种解决方案),一定要意识到加锁的出发点是为了解决这些问题,不同情景下要解决的问题不一样,才导致加的锁不一样。当然,有时候因为My……

MySQL InnoDB死锁及死锁检测(四)

MySQL InnoDB死锁及死锁检测(四)

一、MySQL InnoDB死锁阐述 在MySQL中,当两个或以上的事务相互持有和请求锁,并形成一个循环的依赖关系,就会产生死锁。多个事务同时锁定同一个资源时,也会产生死锁。在一个事务系统中,死锁是确切存在并且是不能完全避免的。 InnoDB会自动检测事务死锁,立即回滚其中某个事务,并且返回一个错误。它根据某种机制来选择那个最简单(代价最小)的事务来进行回滚……

MySQL InnoDB行锁类型测试(二)

MySQL InnoDB行锁类型测试(二)

一、InnoDB锁算法 InnoDB支持到行级别粒度的并发控制,下面我们分析下几种常见的行级锁类型,以及在哪些情况下会使用到这些类型的锁。 1)Record Lock(源码定义名称:LOCK_REC_NOT_GAP) 锁带上这个Flag时,表示这个锁对象只是单纯的锁在记录上,不会锁记录之前的GAP。在RC隔离级别下一般加的都是该类型的记录锁(但唯一二级索引上……

MySQL InnoDB锁系统阐述(一)

MySQL InnoDB锁系统阐述(一)

一、什么是锁? 开发多用户、数据库驱动的应用时,最大的难点是:一方面要最大程度地利用数据库的并发访问,另外一方面还要确保每个用户能以一致的方式读取和修改数据。为此就有了锁的机制。同时这也是数据库系统区别于文件系统的一个关键特性,InnoDB存储引擎之MySQL数据库的其他存储引擎在这方面技高一筹,就是因为它支持高并发,而高并发的实现很大程度上得益于细粒度的锁……

关于memcached的经典问题总结

关于memcached的经典问题总结

这里收集了经常被问到的关于memcached的问题 * memcached是怎么工作的? * memcached最大的优势是什么? * memcached和MySQL的query cache相比,有什么优缺点? * memcached和服务器的local cache(比如PHP的APC、mmap文件等)相比,有什么优缺点? * memcached的cache……

理解memcached为什么会丢数据?

理解memcached为什么会丢数据?

分享一个memcached丢失数据后的解决办法 在看这篇文章之前,最起码要知道memcached系列前三篇的知识,最重要的就是memcached的命令以及memcached内存管理策略,这是理解memcached为什么会丢数据的基础。 01-Memcached缓存数据库介绍 02-Memcached安装使用详解 03-Memcached内存分配策略 04-M……