Mysql
文章平均质量分 69
Hepburn Yang
匠心精神
展开
-
【MySQL】-无限级分类表设计与查询
What?举个简单的例子,我们设计购物商城之类的网站的时候一般商品都会有一级分类二级分类甚至三级分类或者再细分,如果按照传统思维我们可能会为每个级别的类别设置一张分类表然后再用外键去关联,虽然这样保证了没有冗余,但是我们完全没有必要设置这么多表,更何况商品类可以是无限细分的,我们不能因此而创建无数张表,最最重要的是这样多表连接查询时候会造成效率低下的问题,不利于性能的提升。这个时候我们如何...原创 2018-04-15 21:37:23 · 10387 阅读 · 13 评论 -
数据库的服务化切分--分库分表
What?随着大数据时代的到来,业务系统的数据量日益增大,数据存储能力逐渐成为影响系统性能的瓶颈。目前主流的关系型数据库单表存储上限为1000万条记录,而这一存储能力显然已经无法满足大数据背景下的业务系统存储要求了。随着微服务架构、分布式存储等概念的出现,数据存储问题也渐渐迎来了转机。而数据分片是目前解决海量数据持久化存储与高效查询的一种重要手段。数据分库分表的过程在系统设计阶段完成,要求系统...原创 2018-05-07 22:46:23 · 669 阅读 · 13 评论 -
【Mysql】-- 逻辑架构
连接器连接器负责跟客户端建立连接,获取权限,维持和管理连接。步骤:1. 验证用户名和密码2. 根据用户名和密码认证当前连接所拥有的权限3. 连接完成后,若没有后续动作则连接处于空闲状态。原创 2019-08-18 21:35:33 · 272 阅读 · 0 评论 -
【Mysql】-- Explain分析+索引优化
# 一、索引正确的创建合适的索引是提升数据库查询性能的基础。## 索引是什么官方正解:数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,这些数据结构以某种方式指向数据,这样就可以在这些数据结构的基础上实现高级查找算法,这种数据结构就是索引。索引本身也很大,不可能全部在内存中,往往以索引文件的形式存储在磁盘上。原创 2019-08-18 21:36:47 · 355 阅读 · 0 评论 -
【Mysql】--索引结构Btree / B+tree
对比结构图优化点原创 2019-08-18 21:37:41 · 458 阅读 · 0 评论 -
【Mysql】--慢查询日志
慢查询日志是否开启,如何开启,存放位置,日志解析原创 2019-08-18 21:38:17 · 439 阅读 · 0 评论 -
【Mysql】--事务隔离级别
事务并发问题脏读,重复读,幻读事务并隔离级别读未提交读已提交可重复读串行化原创 2019-08-18 21:40:01 · 333 阅读 · 0 评论 -
【Mysql】--事务隔离级别实现原理 (锁+mvcc)
1.事务并发带来的问题:脏读:读了未提交的事务修改的内容不可重复度 (事务内第一次读和第二次读内容不一致,有另外一个事务对数据做了修改:update或delete)幻读 (事务第二次读的时候多出来一条数据:另外一个事务中间插入了一条数据提交了: 在选定范围内一般是插入了一条数据)原创 2019-08-18 21:40:32 · 597 阅读 · 2 评论 -
如何把系统不停机迁移到分库分表的?
假设,你现有有一个单库单表的系统,在线上在跑,假设单表有600万数据3个库,每个库里分了4个表,每个表要放50万的数据量假设你已经选择了一个分库分表的数据库中间件,sharding-jdbc,mycat,都可以(1)停机迁移方案我先给你说一个最low的方案,就是很简单,大家伙儿凌晨12点开始运维,网站或者app挂个公告,说0点到早上6点进行运维,无法访问。。。。。。接着到0点,停机,系统...原创 2019-09-15 21:39:55 · 924 阅读 · 0 评论 -
如何设计可以动态扩容缩容的分库分表方案
如何设计可以动态扩容缩容的分库分表方案?(1)选择一个数据库中间件,调研、学习、测试(2)设计你的分库分表的一个方案,你要分成多少个库,每个库分成多少个表,3个库每个库4个表(3)基于选择好的数据库中间件,以及在测试环境建立好的分库分表的环境,然后测试一下能否正常进行分库分表的读写(4)完成单库单表到分库分表的迁移,双写方案(5)线上系统开始基于分库分表对外提供服务(6)扩容了,扩容成...原创 2019-09-15 21:42:25 · 753 阅读 · 0 评论 -
【Mysql】-- 为查询记录编上递增序号
原始数据:select * from mto_config为查询记录编上递增序号SELECT ( @i := @i + 1 ) num, m.* FROM mto_config m, ( SELECT @i := 0 ) AS i原创 2019-10-05 10:11:41 · 1881 阅读 · 0 评论 -
【教程】win10解压配置安装mysql5.7.21-win64(无setup.exe)
【分享资源】【安装步骤】1.解压安装包到安装目录下2.配置环境变量3.数据库配置文件修改4.新建数据库防止文件5.执行安装命令6.启动mysql服务7.连接mysql8.测试9.客户端连接【分享资源】链接: https://pan.baidu.com/s/1qZO2eeS 密码: 6hs7 官网安装包:http://dev.mysql.com/dow...原创 2018-03-04 18:04:51 · 1301 阅读 · 17 评论 -
数据库性能优化详解
看了篇关于数据库性能优化的文章, 写的太好了,想转载过来,但是实在是太太太长了。。。。。 懒得粘过来了,点击访问吧: 数据库性能优化详解转载 2018-01-21 10:39:13 · 396 阅读 · 11 评论 -
SQL的四种连接--内连接,左外连接,右外连接,完全连接
引言 联接条件可在FROM或WHERE子句中指定,建议在FROM子句中指定联接条件。WHERE和HAVING子句也可以包含搜索条件,以进一步筛选联接条件所选的行。 分类:1、内联接(典型的联接运算,使用像 = 或 <> 之类的比较运算符)。包括相等联接和自然联接。 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students和courses表中学生标识号相同的原创 2017-11-25 10:13:01 · 2288 阅读 · 23 评论 -
SQL--当一张表的两个外键指向同一主键
最近遇到了这样一个问题,当一张表中有两个外键同时执行了另外一种表的主键,如何建立一张视图,让这两个外键都找到相应的信息。来实例吧:第一张表,归还记录:第二张表,用户表:问题就是,归还记录表里有两个字段,applicantUserID, operUserID,分别是申请人和操作人,他们作为外键同时指向了用户表的user ID,现在想通过这两个外键获取他们各个ID对应的姓名,即userName.分析:当原创 2017-11-26 18:54:54 · 20292 阅读 · 30 评论 -
【Mysql】-- 查询结果集中排序第N高的记录
案例:编写一个 SQL 查询,获取 Employee 表中第 n 高的薪水(Salary)。+----+--------+| Id | Salary |+----+--------+| 1 | 100 || 2 | 200 || 3 | 300 |+----+--------+例如上述 Employee 表,n = 2 时,应返回第二高的薪水 200。如...原创 2019-10-05 10:43:42 · 712 阅读 · 0 评论