文章分类 - 五、数据库
摘要:一、前言 对于行锁和表锁的含义区别,在面试中应该是高频出现的,我们应该对MySQL中的锁有一个系统的认识,更详细的需要自行查阅资料,本篇为概括性的总结回答。 MySQL常用引擎有MyISAM和InnoDB,而InnoDB是mysql默认的引擎。MyISAM不支持行锁,而InnoDB支持行锁和表锁。
阅读全文
摘要:一、MyCat是什么 MyCat是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议与多个MySQL服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,其核心功能是分表分
阅读全文
摘要:一、什么是主从复制 将主数据库中的DDL和DML操作通过二进制日志传输到从数据库上,然后将这些日志重新执行(重做);从而使得从数据库的数据与主数据库保持一致。 基本原理: MySQL支持单向、异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。 MySQL复制是基于主服务
阅读全文
摘要:一、定义 触发器(trigger):是MySQL提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表 事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比 如当对一个表进行DML操作( insert , delete , update )时就会激活它执行。
阅读全文
摘要:一、视图介绍 一种虚拟存在的表,行和列的数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的,只保存了sql逻辑,不保存查询结果。 二、特点 (1)对视图的修改:单表视图一般用于查询和修改,会改变基本表的数据,多表视图一般用于查询,不会改变基本表的数据。 三、作用 (1)复用性:如果要对一
阅读全文
摘要:一、为什么需要锁 在并发环境下,如果多个客户端访问同一条数据,此时就会产生数据不一致的问题,如何解决,通过加锁的机制,常见的有两种锁,乐观锁和悲观锁,可以在一定程度上解决并发访问。 二、悲观锁 悲观锁,正如其名,就是很悲观,每次拿数据库的时候都认为别人会修改。所以每次在拿数据库数据的时候都会上锁,这
阅读全文
摘要:一、存储过程 一组预先编译好的SQL语句的集合,理解成批处理语句,是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。 存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。 存储过程思想上很简单,就是数据库 S
阅读全文
摘要:一、问题案例 张三要给李四转账5元,2人本来都有10元,则在数据库中需要执行2条SQL语句(1)更新张三账户余额为5元。(2)更新李四账户余额为15元。 如果没有事务,当执行第一个SQL语句后,数据库挂掉的话,则导致第二个SQL语句没有执行。 二、事务介绍: 事务由单独单元的一个或多个SQL语句组成
阅读全文
摘要:1、两者之间的区别: 2、MyISAM (1)数据库存储文件 数据库文件一般在数据库安装目录的data文件夹里,前面说过引擎是针对数据库表而言的,如果一张表是MyISAM引擎的话,那么这个表有3个文件, 后缀名分别是:(1).frm(存储表结构)。(2).MYI(index,存储索引)。(3).MY
阅读全文
摘要:数据库引擎 数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以 获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySQL的核心就是存储
阅读全文
摘要:一、索引介绍 索引是一种数据结构,用于帮助我们在大量数据中快速定位到我们想要查找的数据。 索引在MySQL中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要。索引优化应该是对查询性能优化最有效的手段了。索引
阅读全文
摘要:一:mysql的执行过程 过程: 客户端发送一条查询给服务器; 服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果。否则进入下一阶段。 服务器段进行SQL解析、预处理,在优化器生成对应的执行计划; mysql根据优化器生成的执行计划,调用存储引擎的API来执行查询。 将结果返回给客户
阅读全文