【Mysql】
天青色的烟雨.
本博客只为加深自身知识体系,不为任何商业用途呦呦呦!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MySQL中Innodb和Myisam对比及索引原理区别
1、事务和外键 InnoDB具有事务,支持4个事务隔离级别,回滚,崩溃修复能力和多版本并发的事务安全,包括ACID。如果应用中需要执行大量的INSERT或UPDATE操作,则应该使用InnoDB,这样可以提高多用户并发操作的性能。 MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力。如果应用中需要执行大量的SELECT查询,那么MyISAM是更好的选...原创 2019-03-16 17:42:48 · 307 阅读 · 0 评论 -
MVCC (多版本并发控制)、redo、undo
MVCC(Multi-Version Concurrency Control)即多版本并发控制,是通过保存数据在某个时间点的快照来实现的。它使得大部分支持行锁的事务引擎,不再单纯的使用行锁来进行数据库的并发控制,取而代之的是,把数据库的行锁与行的多个版本结合起来,只需要很小的开销,就可以实现非锁定读,从而大大提高数据库系统的并发性能. MySQL的大多数事务型(如In...原创 2019-05-06 12:03:50 · 933 阅读 · 0 评论 -
数据库分库分表
基本思想 分库分表的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题。不太严格的讲,对于海量数据的数据库,如果是因为表多而数据多,这时候适合使用垂直切分,即把关系紧密(比如同一模块)的表切分出来放在一个server上。如果表并不多,但每张表的数据非常多,这时候适合水平切分,即把表的数据按某种规则(比如按ID散列)切分到多个数据库...原创 2019-05-04 11:58:00 · 353 阅读 · 0 评论 -
【MySQL高级】(八)主从复制
1. 简介 随着技术的发展,在实际的生产环境中,由单台MySQL数据库服务器不能满足实际的需求。此时数据库集群就很好的解决了这个问题。采用MySQL分布式集群,能够搭建一个高并发、负载均衡的集群服务器。在此之前我们必须要保证每台MySQL服务器里的数据同步。数据同步我们可以通过MySQL内部配置就可以轻松完成,主要有主从复制和主主复制。 MySQL数据库自身提供的主从...原创 2019-03-17 21:24:47 · 222 阅读 · 0 评论 -
【MySQL高级】(六 )查询截取分析
1. 查询优化1.1 永远小表驱动大表小表驱动大表的理解我们可以通过下面的java代码来理解一下:// 第一种循环的方式 for(int i = 0;i < 5;i++){ for(int j = 0;j<1000;j++){ } } // 第二种循环的方式 for(int i = 0;i < 1000;i++){ for(in...原创 2019-03-17 17:55:31 · 355 阅读 · 0 评论 -
【MySQL高级】(五)索引失效、索引优化
1. 前言 索引的建立是为了让我们更加高效快速的查询出结果,但是,要想充分利用起索引,我们首先要解决的最大问题就是要避免索引失效,下面我们来一起通过实例来探讨造成索引失效的情况,并通过优化SQL查询语句来避免索引失效。➤ 准备工作:、创建数据表SQLCREATE TABLE `staffs` ( `id` int(11) NOT NULL AUTO_INCREMENT COM...原创 2019-03-17 17:45:49 · 834 阅读 · 1 评论 -
【MySQL高级】(四)案例分析
1. 单表1.1 建表SQLCREATE TABLE `article` ( `id` int(10) NOT NULL, `author_id` int(10) DEFAULT NULL, `category_id` int(10) DEFAULT NULL, `views` int(10) DEFAULT NULL, `comments` int(10) DEFA...转载 2019-03-17 15:56:41 · 350 阅读 · 0 评论 -
【MySQL高级】(二) 之全文索引
引入概念通过数值比较、范围过滤等就可以完成绝大多数我们需要的查询,但是,如果希望通过关键字的匹配来进行查询过滤,那么就需要基于相似度的查询,而不是原来的精确数值比较。全文索引就是为这种场景设计的。你可能会说,用 like + % 就可以实现模糊匹配了,为什么还要全文索引?like + % 在文本比较少时是合适的,但是对于大量的文本数据检索,是不可想象的。全文索引在大量的数据面前,能比 ...转载 2019-03-17 15:10:07 · 346 阅读 · 0 评论 -
【MySQL高级】(一)索引简介
1. 概述 数据库除了数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,这些数据结构以某种方式指向数据,这样就可以在这些数据结构的基础上实现高级查找算法,这种数据结构就是索引。简而言之,索引是帮助MySQL高效获取数据的数据结构,是“排好序的快速查找数据结构”。 一般来说,索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储在磁盘上...转载 2019-03-17 14:53:52 · 293 阅读 · 0 评论 -
【MySQL高级】(三)之EXPLAIN用法和结果分析
1. EXPLAIN简介使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。➤ 通过EXPLAIN,我们可以分析出以下结果: 表的读取顺序 数据读取操作的操作类型 哪些索引可以使用 哪些索引被实际使用 表之间的引用 每张表有多少行被优化器查询➤ 使用...原创 2019-03-17 12:08:33 · 508 阅读 · 1 评论 -
Mysql的三范式
一般的数据库设计都需要满足三范式,这是最基本的要求的,最高达到6NF,但是一般情况下3NF达到了就可以。一:1NF一范式的理解: 1NF是关系型数据库中的最基本要求,就是要求记录的属性是原子性,不可分,就是属性不能分,这是关系型数据库的基本要求,不满足这个就不能叫关系型数据库了例如:讲师 性别 班级 教室 代课时间 代课时间(开始,结束...转载 2019-05-06 17:30:11 · 273 阅读 · 0 评论
分享