MySQL
文章平均质量分 72
MySQL
@码猿
日复一日,每天累积一点。
展开
-
MySQML进阶—MySQL优化explain(四)
MySQL优化explain详细资料原创 2021-12-12 22:56:31 · 445 阅读 · 0 评论 -
MySQML进阶—MySQL的索引(三)
一、索引简介1、什么是索引索引是帮助MySQL高效获取数据的数据结构(索引是一种数据结构)。简单理解:排好序的快速查找数据结构(排序、查找)。都是指B树(多路搜索树,并不一定是二叉的)结构组织的索引。其中聚集索引,次要索引,覆盖索引,复合索引,前缀索引,唯一索引默认都输使用B+树索引。还有哈希索引(hash index)等。目的提高查询效率,类比字典,图书馆的条形码。注意:索引本身很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储在磁盘上2、索引的优势和劣势优势:a.原创 2021-12-12 14:46:20 · 782 阅读 · 2 评论 -
MySQML进阶—MySql的SQL执行顺序和JOIN七种理论(二)
一、SQL性能下降的原因(执行时间长、等待时间长)查询语句写的烂 索引失效(单值索引,复合索引) 关联查询太多Join 服务器调优及各个参数设置(缓冲,线程数等二、SQL执行加载顺序手写机读总结三、七种Join理论INNER JOIN(结果显示两表公共部分)LEFT JOIN(左联,右表不满足的部分补null显示)RIGHT JOIN(右联,左边不满足的部分补null显示)left join (表左关联,显示左表独有的数据,...原创 2021-12-12 11:27:29 · 415 阅读 · 0 评论 -
MySQML进阶—MySQL逻辑结构(一)
逻辑结构图如下数据库结构分为四层,如下图一、连接层提供客户端和连接服务,包含本地Sock通信和大多数基于客户端/服务端工具实现的类似TCP/IP的通信,主要完成一些类似于连接处理、授权认证及相关安全方案,在该层上引入了线程池的概念,为通过认证安全接入的客户端提供线程,同样在该层上可以实现基于SSL的安全链接。服务器也会为安全接入的每个客户端验证它所具有的操作权限。注:分配数据库连接线程池,控制数据库的连接和关闭等资源。科普:线程,程序执行流的最小执行单位,是行程中的实际运作单位.原创 2021-12-12 09:31:14 · 573 阅读 · 0 评论 -
常见的关系型数据库与非关系型数据库对比详解。
1、 数据库分为关系型数据库和非关系型数据库。关系型数据库(一表或多表):Oracle:是一个开放式商品化关系型数据库管理系统DB2:应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于所有常见的服务器操作系统平台下Microsoft SQL Server:全面的数据库平台,使用集成的商业智能 (BI)工具提供了企业级的数据管理。MySQL:是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。(常用)原创 2021-08-19 15:43:06 · 2127 阅读 · 0 评论 -
MySQL软删除是否能使用外键?
在开发项目的过程中,MySQL设计数据库要遵守最基本的设计要求:1、唯一约束:控制某列不能出现重复的值(作为主键,唯一性,unique 索引设置)。2、非空约束:控制某列不能出现空值 (not null)3、检查约束:控制某一列数据的范围(check)4、主键约束:表格的序号列的一个约束,表现上非空+唯一,其实是数据的唯一的编号分表,5、分表:减少冗余,有利于维护和修改。如何设置外键,请看...原创 2021-07-20 14:56:30 · 257 阅读 · 0 评论 -
Mysql外键如何使用(CASCADE、NO ACTION、RESTRICT、SET NULL)。
Navicat Premium 15建立物理模型的时候,表与表之间的关系都是关联起来,而关联的时候会设置外键。如下图所示:在删除时或者更新的时有四个选项分别是CASCADE、NO ACTION、RESTRICT、SET NULL。CASCADE在父表上update/delete记录时,同步update/delete到子表的匹配记录SET NULL在父表上update/delete记录时,将子表上匹配记录的列设为null (要注意子表的外键列不能为not null)NO ACTION如果子表中原创 2021-07-16 17:08:24 · 4212 阅读 · 0 评论 -
MySQL优化之索引
MySQL优化,通过索引优化提高查询效率。转载 2021-06-10 17:06:21 · 101 阅读 · 0 评论 -
MySQL优化之explain详解
在开发中,很多时候存在一些查询时间比较久的MySQL语句,查看该SQL语句是否使用索引,有没有全表扫描。通过explain命令来查看。语法-- 实际SQL,查找用户名为Jefabc的员工select * from emp where name = 'abc';-- 查看SQL是否使用索引,前面加上explain即可explain select * from emp where name = 'abc';expain出来的信息有10列,分别是id、select_type、table、type转载 2021-06-10 09:53:07 · 139 阅读 · 0 评论 -
访问量大的时候引起的雪崩,穿透,击穿问题,如何解决?
缓存雪崩定义:是指某一个时间段,缓存集中过期失效。解决办法:1、把缓存的过期时间设置不同的时间。2、缓存失效后,通过加锁或者队列来控制读取数据库写入缓存的线程数量。3、数据预热,先把可能防伪你的数据预先访问一遍,这部分大量访问的数据加载到缓存中。缓存穿透定义:指查询一个数据库一定不存在的数据。正常的使用缓存流程大致是,数据查询先进行缓存查询,如果key不存在或者key已经过期,在对数据库进行查询,并把查询到的对象,放进缓存。如果数据库查询对象为空,则不放进缓存。解决办法:缓存空对象,如果查原创 2020-06-16 19:23:47 · 362 阅读 · 0 评论 -
Mysql与Nosql的区别与应用场景。
数据库类型 特性 优点 缺点 存储方式 查询语句 应用场景 关系型数据库 SQL Server,Oracle,MySQL 1、关系型数据库,是指采用了关系模型来组织 数据的数据库; 2、关系型数据库的最大特点就是事务的一致性; 3、简单来说,关系模型指的就是二维表格模型, 而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。 1、容易理解:二维表结构是非常贴近逻辑世界一个概念,关系模型相对网状、层次等其他模...原创 2020-06-16 17:06:04 · 1771 阅读 · 0 评论 -
MySQL优化,读写分离(主从分离)三
总结:MySQL优化主要从数据表的设计,SQL语句,服务器设备,数据读写这几个方面来优化。前面两篇已经写了,这篇主要讲MySQL数据读写分离,意思是,那台服务器是主服务器,负责写,那台服务器是从服务器,负责写。前提:准备三台服务器原理:通过mysql-proxy,amoeba作为中间件,往代理机器发送,代理软件进行判断发往不同的mysql服务器。如下图(有点像redis哨兵模式)服务器:192.168.101 # 主库-只写192.168.102 # 从库-只读192.168.100 .原创 2020-05-11 16:39:51 · 212 阅读 · 0 评论 -
MySQL优化,一主多从配置(二)
续上篇,上篇讲到的是如何在数据库结构上设置做优化。本篇是从硬件+配置的角度去优化,第三篇主要是如何实现读写分离。前提准备三台服务器或者多台服务器。一、工作原理主服务器负责写,从服务器负责读。工作原理如下图:原理:主服务器的操作动作生成binlog日志,从服务器通过读取binlog解析relaylog,从服务器再执行replaylog,生产数据在从服务上。二、linux系统上配置...原创 2020-04-30 14:26:53 · 192 阅读 · 0 评论 -
Mysql优化,是什么,如何优化(一)
分享经验以前的技术活都是有个师傅一把手教导,现在技术活只能靠自己去学习。我作为程序员,要把握两点,一是市场,二是实战技术。市场作为导向,而实战技术才是技术人员最大的财富。我经常会去看行业的招聘信息。因为那里可以看到市场需要技术人员的技术要达到什么程度,懂得什么技术。如果你懂了完全可以胜任,如果招聘信息上,你看不懂的技术,正是你要需要弥补的知识。MySQL优化要从数据库设计、查询、索引、存储...原创 2020-04-23 11:11:11 · 368 阅读 · 0 评论