MySQL学习(1)---MySQL概述】的更多相关文章

MySQL体系结构总览 不管是用哪种数据库,了解数据库的体系结构都是极为重要的.MySQL体系结构主要由数据库和数据库实例构成. 数据库:物理操作系统文件或者其它文件的集合,在mysql中,数据库文件可以是frm.myd.myi.ibd等结尾的文件,当使用ndb存储引擎时候,不是os文件,是存放于内存中的文件. 数据库实例:由数据库后台进程/线程以及一个共享内存区组成,共享内存可以被运行的后台进程/线程所共享. 以下为MySQL数据库的体系结构: 最上层的服务并不是MySQL所独有的,大多数基与…
什么是数据库 概述 数据库(Database)是长期存储在计算机内有组织.大量.共享的数据集合.它可以供各种用户共享,具有最小冗余度和较高的数据独立性.数据库管理系统DBMS(Database Management System)在数据库建立.使用和维护时对数据库进行统一控制,以保证数据的完整性和安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对数据库进行恢复. 分类 数据库分为关系型数据库和非关系型数据库. 关系型数据库(RDBMS:Relational Database Mana…
ps:没有特殊说明,此随笔中默认采用innoDB存储引擎中的索引,且索引都是指B+树(多路平衡搜索树)结构组织的索引.其中聚集索引.复合索引.前缀索引.唯一索引默认都是使用B+树,统称为索引. 索引概述 索引是存储引擎用于快速找到记录的一种数据结构. 如下图所示: 图中左边是数据表,一共有2列7行数据,最左边的0x09格式的数据是物理地址(注:逻辑上相邻的记录在磁盘上也不一定是物理相邻的).为了加快Col2列数据的查找,可以维护一个右边所示的二叉查找树,每个节点分别包含索引键值和一个指向对应数据…
这一篇<我的MYSQL学习心得(十三)>将会讲解MYSQL的用户管理 在mysql数据库中,有mysql_install_db脚本初始化权限表,存储权限的表有: 1.user表 2.db表 3.host表 4.table_priv表 5.columns_priv表 6.proc_priv表 MySQL存取控制包含2个阶段: 阶段1:服务器检查你是否允许连接. 阶段2:假定你能连接,服务器检查你发出的每个请求.看你是否有足够的权限实施它.例如,如果你从数据库中一个表精选(select)行或从数据…
这一篇<我的MYSQL学习心得(十五)>将会讲解MYSQL的日志 MYSQL里的日志主要分为4类,使用这些日志文件,可以查看MYSQL内部发生的事情. 分别是 1.错误日志:记录mysql服务的启动.运行.停止mysql服务时出现的问题 2.查询日志:记录建立的客户端连接和执行的语句 3.二进制日志:记录所有更改数据的语句,可以用于数据复制 4.慢查询日志:记录所有执行时间超过long_query_time的所有查询或不使用索引的查询 默认情况下,所有日志创建于mysql数据目录中.通过刷新日…
权限管理 权限管理 我们知道我们的最高权限管理者是root用户,它拥有着最高的权限操作.包括select.update.delete.update.grant等操作.那么一般情况在公司之后DBA工程师会创建一个用户和密码,让你去连接数据库的操作,并给当前的用户设置某个操作的权限(或者所有权限).那么这时就需要我们来简单了解一下: 如何创建用户和密码 给当前的用户授权 移除当前用户的权限 如果你想创建一个新的用户,则需要以下操作: 1.进入到mysql数据库下 mysql> use mysql D…
首先去官网或者github下载MySQL5.7的源码. 官网地址:https://dev.mysql.com/downloads/mysql/ github地址:https://github.com/mysql/mysql-server/tree/5.7 但是好像都下在不到<MySQL运维内参>中的5.7.16版本,所以我这里下载了5.7.25版本,和5.7.16版本比较接近. 我这里下载的是mysql-boost-5.7.25.tar.gz. 下载好后运行如下命令,解压,并将其移动到~/文档…
ps:此随笔基于mysql 5.7.*版本. 准备 net start mysql 启动MySQL服务 net stop mysql 关闭MySQL服务 mysql [-h<IP地址>] [-p<端口>] -u<用户名> -p<密码> 连接MySQL exit/quit 退出MySQL 注:MySQL的提示符是:mysql> .MySQL命令结束使用";"或是"\G". 已知root账户密码进行登录 格式:mys…
启动与关闭: 用管理员身份运行cmd 启动:net start mysql57 其中mysql57是我的MySQL名称,版本不同名称可能不一样 关闭:net stop mysql57 与上面同理 登录与退出: 登录: 相关命令: -uroot 用户名. -p后面可直接添加密码,或者单纯输入-p,以不可见的方式输入密码. -P3306 mysql 的端口号(可忽略不写,默认端口号是3306) -h127.0.0.1 连接本地地址 127.0.0.1是本地回环地址(可以不写,默认本地地址) 退出:…
调优思路: 1.数据库设计与规划--以后再修该很麻烦,估计数据量,使用什么存储引擎 2.数据的应用--怎样取数据,sql语句的优化 3.mysql服务优化--内存的使用,磁盘的使用 4.操作系统的优化--内核.tcp连接数量 5.升级硬件设备 磁盘io规划 raid技术:raid0[xfs] swap分区:最好使用raid0 磁盘分区:一个库放到一个分区上或一个磁盘上 物理分区 create table t1(id int,name char(20)) data directory='/data…
最近一段时间,我们整理了一些关于Percona,Linux,Flashcache,硬件设备的优化经验,分享给大家: 硬件 1.开启BBWC RAID卡都有写cache(Battery Backed Write Cache),写cache对IO性能的提升非常明显,因为掉电会丢失数据,所以必须由电池提供支持.电池会定期充放电,一般为90天左右,当发现电量低于某个阀值时,会将写cache策略从writeback置为writethrough,相当于写cache会失效,这时如果系统有大量的IO操作,可能会…
1.安装包的下载(mysql-v5.7.25 )(NavicatforMySQL_11.2.15): 链接:https://pan.baidu.com/s/166hyyYd3DMjYhMwdW805FA 提取码:18cj 复制这段内容后打开百度网盘手机App,操作更方便哦 2.安装(两个安装包直接下载后直接是下一步安装,这块就略去了.后面主要是mysql-v5.7.25后续操作): 2.1 以管理员身份运行cmd窗口: 2.2 位置切换到MySQL安装路径下的bin目录下: 2.3 显示data…
ps:此随笔基于mysql 5.7.*版本. 补充: UNSIGNED:所有整数类型都可以有一个可选(非标准)UNSIGNED属性.无符号类型可用于在列中仅允许非负数存在,或者当开发者需要该列的较大数值范围时.例如,如果一个INT类型的列使用UNSIGNED属性,则该列范围的大小相同,但其端点向上移动,从-2147483648~2147483647到0~4294967295.浮点和定点类型也可以使用UNSIGNED属性.与整数类型一样,此属性可防止将负值存储在列中.与整数类型不同,列值的上限保持…
分页操作:使用limit(参数1,参数2) 起始位置(参数1))*每页显示的条数(参数2) .分类表 create table category( cid ) primary key, cname ) ); .商品表 create table product( pid ) primary key, pname ), price double, category_id ) ); alter table product add foreign key(category_id) references…
MySQL学习点滴 --分区表 概述: 分区功能并不是在存储引擎层完成的,因此很多存储引擎包括InnoDB, MyISAM, NDB等都支持分区功能.但也并不是所有的存储引擎都支持分区.在使用分区前,首先要了解一下存储引擎对分区的支持情况.如果不作特殊说明,默认是在InnoDB下进行说明. 所谓分区,指的是将一个表或索引分解为更小的部分.从物理层面来说,可能是分成了N个物理分区,每个分区都是独立的.从逻辑上来说,这N个物理分区仍是一个表或一个索引. 分区可以分为两大类: 水平分区,指的是将同一表…
在事务相关话题中,已经提到事务隔离性依靠锁机制实现的.在本篇中围绕着InnoDB与MyISAM锁机制的不同展开,进而描述锁的实现方式,多种锁的概念,以及死锁产生的原因.   Mysql常用存储引擎的锁机制 MyISAM和MEMORY采用表级锁(table-level locking): BDB采用页面锁(page-leve locking)或表级锁,默认为页面锁: InnoDB支持行级锁(row-level locking)和表级锁,默认为行级锁: 各种锁特点 表级锁(table-level l…
事务机制 事务(Transaction)是数据库区别于文件系统的重要特性之一.事务会把数据库从一种一致状态转换为另一个种一致状态.在数据库提交工作时,可以确保其要么所有修改都已经保存了,要么所有修改都不保存. InnoDB存储引擎中的事务完全符合ACID的特性. 原子性(atomicity) 原子性是指整个数据库事务是不可分割的工作单位.只有使事务中所有的数据库操作执行都成功,才算整个事务成功.如果事务中任何一个SQL语句执行失败,那么已经执行成功的SQL语句也必须撤销,数据库状态应该退回到执行…
数据库文件 MySQL主要文件类型有如下几种 参数文件:my.cnf--MySQL实例启动的时候在哪里可以找到数据库文件,并且指定某些初始化参数,这些参数定义了某种内存结构的大小等设置,还介绍了参数类型以及定义作用域: 日志文件:记录MySQL对某种条件做出响应时候写入的文件,包括错误日志.查询日志.慢查询日志.二进制日志: Mysql表结构文件:存放MySQL表结构定义文件,不论采用何种存储引擎,MySQL都有一个以frm为后缀名的文件: Socket文件:当用linux的MySQL命令行窗口…
数据库内存 InnoDB存储引擎内存由以下几个部分组成:缓冲池(buffer pool).重做日志缓冲池(redo log buffer)以及额外的内存池(additional memory pool),分别由配置文件中的参数innodb_buffer_pool_size和innodb_log_buffer_size的大小决定. 缓冲池中缓存的数据也类型有:索引页(index page).数据页(data page).插入缓冲(insert buffer).自适应哈希索引(adaptive ha…
数据库后台线程 默认情况下讲述的InnoDB存储引擎,以后不再重复声明.后台线程有7个--4个IO thread,1个master thread,1个锁监控线程,1个错误监控线程.IO thread的数量由配置文件中的innodb_file_io_threads参数控制,默认为4.4个IO线程分别是insert buffer thread.log thread.read thread.write thread. 在MySQL 5.6.10中,MySQL企业版MySQL的包括线程池,使用服务器插件…
Cache和Buffer是两个不同的概念,简单的说,Cache是加速"读",而 buffer是缓冲"写",前者解决读的问题,保存从磁盘上读出的数据,后者是解决写的问题,保存即将要写入到磁盘上的数据.在很多情况下,这两个名词并没有严格区分,常常把读写混合类型称为buffer cache,在Oracle Instance里同样有一块区域作为数据库缓冲区&&高速缓存. Oracle Overview MySQL Memory Overview 数据库设计普…
软件程序性能测试在之前<品味性能之道>系列中已经大量提到,讲解了很多测试方法.测试观念.测试思想等等.最近准备深入MySQL进行学习并总结.分别查阅<MySQL性能调优与架构设计>.<MySQL高性能书籍>.<MySQL技术内幕InnoDB存储引擎>.官方<MySQL Manual>,重点关注结构原理,以及各种性能调优手法.大致计划为体系结构.事务与事务隔离机制.锁机制与死锁.范式与反范式.性能调优等. 第一部分.MySQL体系结构 后台线程 内…
    MySQL是一个开源的数据库系统,近些年来使用率越来越高,目前属于Oracle公司所有,其拥有MySQL的商标,属于主流版本,由于其开源特性,出现了一些分支,常见的有MariaDB.Percona Server.Drizzle.这三个版本各有其特点.其中目前最流行的是MariaDB,很多Linux发行版默认的MySQL已经切换为MariaDB,但其他分支也有其适用范围,在选择的时候需要仔细甄别.     Percona Server由一家MySQL咨询公司拥有,这个公司的工具包Perco…
一.CMD中经常使用mysql相关命令 mysql -D, --database=name  //打开数据库 --delimiter=name  //指定分隔符 -h, --host=name  //server名称 -p,--password[=name]  //密码 -p,--port[=name] //端口号 --prompt==name  //设置提示符 -u, --user=name  //username -V, --version    //输出版本 能够组合使用,如 输入 -uu…
我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(六) 函数 我的MYSQL学习心得(七) 查询 我的MYSQL学习心得(八) 插入 更新 删除 我的MYSQL学习心得(九) 索引 我的MYSQL学习心得(十) 自定义存储过程和函数 我的MYSQL学习心得(十一) 视图 我的MYSQL学习心得(十二) 触发器 我的MY…
1.数据库概述 简 而言之,数据库(DataBase)就是一个存储数据的仓库.为了方便数据的存储和管理,将数据按照特定的规律存储在磁盘上.通过数据库管理系统,可以有 效的组织和管理存储在数据库中的数据.如今,已经存在的Oracle.SQLServer.MySQL等诸多优秀的数据库.   详解内容: 数据存储方式 数据库在开发中的作用 数据库访问技术 MySQL数据库的介绍 数据库泛型 SQL语言 常见数据库系统 如果学习数据库   1.1 数据库理论基础 数据库能够将数据按照特定的规律组织起来.…
一.MySQL的前戏 在学习Mysql之前,我们先来想一下一开始做的登录注册案例,当时我们把用户的信息保存到一个文件中: #用户名 |密码 root|123321 alex|123123 上面文件内容的规则是我自己定义的,你要想用我这个程序,必须按照我的规则去执行,但凡不是这个规则,就没有交流的余地. 在一开始的时候文件格式的规定是没有规范的,后面学到模块的时候逐渐知道了目录规则,我们会把文件放到db目录下. 类似下面目录结构: bin conf core db lib log 对于上面db目录…
MySQL数据库初识 MySQL数据库 本节目录 一 数据库概述 二 MySQL介绍 三 MySQL的下载安装.简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 初识sql语句 一 数据库概述 1. 数据库??? 什么是数据库呢? 先来看看百度怎么说的 数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增.截取.更新.删除等操作. 所谓“数据库”系以一定方式储存在一起.能予多个用户共享.具有尽可能小的冗余度.与应用程序…
  day15-MySQL   数据库   1 数据库概念(了解) 1.1 什么是数据库 数据库就是用来存储和管理数据的仓库! 数据库存储数据的优先: 可存储大量数据: 方便检索: 保持数据的一致性.完整性: 安全,可共享: 通过组合分析,可产生新数据.   1.2 数据库的发展历程 没有数据库,使用磁盘文件存储数据: 层次结构模型数据库: 网状结构模型数据库: 关系结构模型数据库:使用二维表格来存储数据: 关系-对象模型数据库:   MySQL就是关系型数据库!   1.3 常见数据库 Ora…
MySQL学习之路(一) 1.1MySQL的概述 MySQL由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一个开源的关系型数据库管理系统. MySQL分为社区版和企业版. 1.2MySQL的安装与配置 1.2.1 安装方式: msi(推荐)和zip: 1.2.2MySQL目录结构: bin 目录,存储可执行文件 data目录,存储数据文件 docs,文档 include目录,存储包含的头文件 lib目录,存储库文件 share ,错误消息和字符集文件 1.2.3MySQ…