
MySQL
文章平均质量分 93
lanco刘
学无止境
展开
-
MySQL的B+树索引和Hash索引
我们在学习MySQL的时候有没有想过索引的目的和他的本质是什么呢?本篇文章在讲解B+树和Hash索引之前先开始谈一下我对这两个问题的看法吧^-^索引的目的毋庸置疑就是提高查询效率了,很多书籍都是把他类比为字典前面的拼音索引,比如我们在查找'lanco'这个单词,是不是先去查找到'l'这个字母,然后再往下找到'a'这个字母,依次再找剩下的字母;试想如果没与索引,我们是不是需要从头开始翻这本词典呢?多...原创 2018-04-08 15:35:36 · 1369 阅读 · 0 评论 -
MySQL的四种隔离级别
MySQL的四种隔离级别 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I 引用 ...原创 2018-08-18 08:48:20 · 20878 阅读 · 7 评论 -
InnoDB的逻辑存储结构学习
InnoDB存储引擎在存储设计方面之前一直是迷迷糊糊,这几天在读《MySQL技术内幕 InnoDB存储引擎》,有点了解,特意记下消化一下^^我们知道InnoDB是使用表空间结构来进行管理的。默认情况下InnoDB有一个共享表空间ibdata1,即所有的数据都存放在这个表空间内,但是我们可以设定innodb_file_per_table为ON使每一张表的数据可以单独放在一个表空间里虽然我们启动了in...原创 2018-06-09 10:40:06 · 1113 阅读 · 0 评论 -
MySQL-事件调度器
时间调度器是在MySQL5.1后新增的功能,它类似linux下面的任务调度器crontab,在这里可以理解为时间触发器,将数据库按自定义时间周期触发某种操作。创建事件调度器CREATE [DEFINER = { user | CURRENT_USER }] EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedu...原创 2018-04-29 13:37:57 · 478 阅读 · 0 评论 -
MySQL-存储过程
再谈存储过程,我们先想想什么是存储过程?存储过程能做什么?怎么使用存储过程?什么是存储过程及他能做什么一言以蔽之,由多条SQL语句组成且经过编译存储在数据库中的集合。那么为什么需要存储过程?理由有很多,当然也有人主张不去使用它,我以为只要是能够方便我们就会有存在意义,而我觉得存储过程的用处彰显明显业务是在如下三点:1、当用不同语言编写多客户应用程序,或多客户应用程序在不同平台上运行且需要执行相同的...原创 2018-04-28 21:37:32 · 277 阅读 · 0 评论 -
MySQL-定位低效的SQL语句
我们经常会遇到MySQL的性能问题,解决办法之一是去定位到低效的SQL语句。比较常用便是通过以下两种方式定位到执行效率较低的SQL语句:注:这里使用的MySQL是5.7版本,以下内容都是基于5.7版本1、慢查询日志:首先我们应该查看是否已经开启了慢查询日志:如上是一开始并没有开启慢查询,所以我们需要去开启并且配置慢查询一些参数:打开MySQL的配置文件my.ini(linux下为my.cnf)并在...原创 2018-05-12 18:22:11 · 894 阅读 · 0 评论 -
MySQL学习-SQL Mode
MySQL服务器可以工作在不同的SQL模式下,并能够针对不同客户端以不同的方式应用这些模式。这样,应用程序就能够对服务器操作进行量身定制以满足需求。这类模式定义了MySQL应支持的SQL语法,以及应该在数据上执行何种确认检查,这样就能在众多不同环境下与其他数据库服务器一起更便捷使用MySQL。在MySQL中主要用它来解决如下几类问题:1、通过设置SQL Mode,可以完成不同严格程度的数据校验,有...原创 2018-05-05 18:55:53 · 265 阅读 · 0 评论 -
MySQL学习之分区一
MySQL从5.1版本开始支持分区功能,它允许可设置的一定逻辑,跨文件系统分配单个表的多个部分,但是就访问数据库而言,逻辑上还是只有一个表。还是老样子,在学习新知识之前都先带着问题去寻找想要的答案:1、什么是分区?2、为什么分区?好处在哪?3、如何分区?什么是MySQL分区?一开始也讲了,根据一定逻辑规则,将一个表拆成多个更小更容易管理的部分。例如我们新建一张表利用range分区逻辑上还是只有一张...原创 2018-05-03 22:41:19 · 1088 阅读 · 0 评论 -
MySQL之触发器
MySQL从5.0.2开始支持触发器功能,它是与表有关的数据库对象,当满足定义条件时触发并且执行触发器中定义的语句集合。如何创建触发器CREATE [DEFINER = { user | CURRENT_USER }] TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW ...原创 2018-04-30 10:07:52 · 203 阅读 · 1 评论 -
MySQL的存储引擎
先说说什么叫存储引擎吧,乍一看觉得好像很高端的样子,如果去了解MySQL体系结构,你会发现,在存储引擎下面一层是文件系统,而存储引擎,说的明白也就是与文件系统打交道的子系统,是一种文件访问机制访问数据的。我们可以通过show engines\G;查看当前支持的存储引擎,其中support:yes代表支持我们在建表时候可以指定使用哪一种存储引擎也可以使用alter语句将已经存在的表修改为其他存储引擎...原创 2018-04-07 13:42:18 · 208 阅读 · 0 评论 -
MySQL锁问题学习
MySQL锁的机制相对其他数据库而言比较简单,显著特点是不同存储引擎支持不同锁机制,如下图:存储引擎表级锁 页面锁行级锁MyISAM支持不支持不支持InnoDB支持不支持支持BDB支持支持不支持而对于这三种锁各自特性,主要如下:表级锁,开销小,加锁快;不会出现死锁;锁的粒度大,发生锁冲突概率最高,并发性最低。页面锁,开销和加锁时间处于表锁和行锁之间,会出现死锁;锁定粒度界于表锁与行锁。行锁,...原创 2018-04-06 20:32:07 · 283 阅读 · 0 评论 -
CentOS安装mysql8.0
CentOS安装mysql8.0这篇文章记录的是使用yum源方式安装mysql8.0添加mysql的YUM源选择版本下载启动mysql 这篇文章记录的是使用yum源方式安装mysql8.0 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 添加mysql的YUM源 在以下链...原创 2019-04-14 16:02:56 · 358 阅读 · 0 评论