![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
文章平均质量分 68
馥钰
好人一生平安!道阻且长,行则将至!
选择一条自己喜欢的路,向前走,莫回头!
天道酬勤!
学海无涯,温故而知新!
线下不努力,线上出问题!线上出问题,努力全白费!
分布式系统、高并发、大流量,分布式计算、分布式存储!
展开
-
一文彻底搞懂MySQL基础:B树和B+树的区别
一文彻底搞懂MySQL基础:B树和B+树的区别_码农富哥-CSDN博客_b树和b+树有什么区别写在前面大家在面试的时候,肯定都会被问到MySql的知识,以下是面试场景:面试官:对于MySQL,你对他索引原理了解吗?我:了解面试官:MySQL的索引是用什么数据机构的?我:B+树面试官:为什么要用B+树,而不是B树?我:…面试官:用B+树作为MySql的索引结构,用什么好处?我:…B树和B+树是MySQL索引使用的数据结构,对于索引优化和原理理解都非常重要,下面我的写文章就是要把B树,转载 2022-02-07 16:59:26 · 251 阅读 · 0 评论 -
mysql索引数据结构
找不到从哪里截的图了,但是我觉得这几张图把索引说的挺清楚的,有必要记录一下B树、B+树MyISAM存储引擎InnoDB存储引擎索引与数据存储在一起,数据在叶子节点上聚簇索引:索引和数据存储在一起,innodb主键索引是聚簇索引非聚簇索引:索引和数据不存储在一起,myisam索引就是非聚簇索引,innodb的非主键索引也是非聚簇索引...原创 2022-02-07 16:56:27 · 629 阅读 · 0 评论 -
数据结构——树的相关概念和MySQL索引
https://www.cnblogs.com/ssskkk/p/12214436.html#_label2回到顶部平衡二叉树和二叉查找树至多有两个子节点的树成为二叉树1)平衡二叉树1)树的左右高度差不能超过1.2)任何往下递归的左子树和右子树,必须符合第一条性质3)没有任何节点的空树或只有跟节点的树也是平衡二叉树树的节点Node是key value的形式。因为key可能不连续,甚至不是整数,所以我们没办法使用数组来表示,这个时候我们就可以用二叉查找树来实现2)二叉查转载 2021-08-02 17:58:23 · 200 阅读 · 0 评论 -
MySQL如何使用索引
https://www.cnblogs.com/ssskkk/p/9348661.html回到顶部初始化测试数据创建一个测试用的表create table dept(id int primary key auto_increment ,deptName varchar(32) not null unique,salary decimal(12,6) not null,remark varchar(256),createDate date);使用存储过程在表中插入一万条数据转载 2021-08-02 17:31:09 · 546 阅读 · 0 评论 -
MySQL ALTER TABLE: ALTER vs CHANGE vs MODIFY COLUMN
写作背景MySQL的ALTER TABLE操作常令DBA闻而变色,即使有Percona的OSC保驾护航,依然不堪轻易出手,但不是所有的ALTER TABLE都会引起表重建,从而需要花费数个小时甚至数天才能完成,本文对这3者作出简单区别,希望在万不得已时能是最后的一根稻草。ALTER COLUMN语法:ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}作用:设置或删除列的默认值。该操作会直接修改....转载 2020-11-30 14:56:17 · 478 阅读 · 0 评论 -
MySQL ALTER TABLE报错 Duplicate entry xxx for key PRIMARY解决方法
https://blog.csdn.net/u014609263/article/details/100199444在MySQL中执行加字段等操作时可能会报Duplicate entry 'xxx' for key 'PRIMARY'的错,例如:mysql> alter table test add aa int;mysql>[Err] 1062 - Duplicate entry '1' for key 'id'原因分析:DDL: Alter tableDML: add转载 2020-06-09 17:03:14 · 2028 阅读 · 0 评论 -
mysql DISTINCT top 5 去重
如果表字段是:id, author_id, version, rank, ……假设表数据如下30,1,100,200……29,2,100,190……28,3,100,180……27,4,100,170……26,5,100,160……25,6,100,150……24,7,100,140……23,1,100,130……22,3,100,120……需求:取最...原创 2020-03-26 17:38:46 · 633 阅读 · 0 评论 -
步步深入:MySQL架构总览->查询执行流程->SQL解析顺序
https://www.2cto.com/database/201512/453280.html前言: 一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一篇博文了。 本文将从MySQL总体架构--->查询执行流程--->语句执行顺序来探讨一下其中的知识。 一、MySQL架构总览: 架构最好看图,再配上必要转载 2018-02-07 15:22:51 · 223 阅读 · 0 评论 -
MySQL优化的奇技淫巧之STRAIGHT_JOIN
https://huoding.com/2013/06/04/261最近没怎么搞SQL优化,碰巧数据库被慢查询搞挂了,于是拿来练练手。问题通过「SHOW FULL PROCESSLIST」语句很容易就能查到问题SQL,如下:SELECT post.*FROM postINNER JOIN post_tag ON post.id = post_tag.post_id转载 2018-02-07 15:47:32 · 251 阅读 · 0 评论 -
MySQL索引与Index Condition Pushdown
http://blog.codinglabs.org/articles/index-condition-pushdown.html大约在两年前,我写了一篇关于MySQL索引的文章。最近有同学在文章的评论中对文章的内容提出质疑,质疑主要集中在联合索引的使用方式上。在那篇文章中,我说明联合索引是将各个索引字段做字符串连接后作为key,使用时将整体做前缀匹配。而这名同学在这个页面找到了如下一转载 2018-02-07 17:01:45 · 194 阅读 · 0 评论 -
案例:MySQL优化器如何选择索引和JOIN顺序
http://www.orczhou.com/index.php/2013/04/how-mysql-choose-index-in-a-join/本文通过一个案例来看看MySQL优化器如何选择索引和JOIN顺序。表结构和数据准备参考本文最后部分"测试环境"。这里主要介绍MySQL优化器的主要执行流程,而不是介绍一个优化器的各个组件(这是另一个话题)。目录 [hide]1.转载 2018-02-07 17:25:57 · 779 阅读 · 0 评论 -
深入理解Mysql——高性能索引与高性能SQL
http://blog.csdn.net/lemon89/article/details/50193891相关文章: 深入理解Mysql——高性能索引与高性能SQL 深入理解Mysql——锁、事务与并发控制(辟谣) 深入理解Mysql——schema设计与大表alter操作 mysql explain-output 译文从理解磁盘IO开始主轴让磁盘盘片转动,然后传动手臂可伸展让读取头在盘片上进行读...转载 2018-02-08 10:16:47 · 355 阅读 · 0 评论 -
MySQL索引原理及慢查询优化
https://tech.meituan.com/mysql-index.htmlMySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系统,读写比例在10...转载 2018-02-08 16:31:58 · 192 阅读 · 0 评论 -
数据库表某字段设置default为Null好,还是“”好,或者是Empty String好呢
http://blog.csdn.net/panxiong91/article/details/52451828最近开始给项目设计数据库,遇到一个可能很多人都会遇到的问题,就是设定某一个字段的默认值的时候,是设定null,“”,还是empty string呢?首先我们从数据类型来分析这个问题:我是phper,如果从php语言来看,要判断是不是空,用empty()这个函数,那么null和empty ...转载 2018-01-05 11:02:54 · 3145 阅读 · 0 评论 -
mysql 大数据量分页优化
https://www.cnblogs.com/codeAB/p/6391607.html假设有一个千万量级的表,取1到10条数据;select * from table limit 0,10;select * from table limit 1000,10;这两条语句查询时间应该在毫秒级完成;select * from table limit 3000000,10;你可能没想到,这条语句执...转载 2018-03-14 16:47:46 · 210 阅读 · 0 评论 -
MySQL最多可建立多少索引和索引的限制
mysql中提到,一个表最多16个索引,最大索引长度256字节.版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/DannyIsCoder/article/details/78953240...转载 2018-04-07 22:16:26 · 3161 阅读 · 0 评论 -
MySQL_插入更新 ON DUPLICATE KEY UPDATE
https://blog.csdn.net/u010003835/article/details/54381080平时我们在设计数据库表的时候总会设计 unique 或者 给表加上 primary key 的限制条件.此时 插入数据的时候 ,经常会有这样的情况:我们想向数据库插入一条记录: 若数据表中存在以相同主键的记录,我们就更新该条记录。 否则就插入一条新的记录。逻辑上我们需要怎么写:$...转载 2018-05-05 11:08:35 · 211 阅读 · 0 评论 -
Mac环境下MySQL无法启动的处理方法
https://blog.csdn.net/ytangdigl/article/details/77412908由于好长一段时间没有使用MySql,去启动MySql时,突然启动不了,点启动没的反映。 网上查原因可能是: 原因是某种情况下导致”/usr/local/MySQL/data”的拥有者发生了改变,所以只需要将其拥有者修改为“mysql“就可以了。 在终端中运行sudo ch...转载 2019-01-24 20:23:57 · 297 阅读 · 0 评论 -
深入理解Mysql——schema设计与大表alter操作
http://blog.csdn.net/lemon89/article/details/76651189相关文章: 深入理解Mysql——高性能索引与高性能SQL 深入理解Mysql——锁、事务与并发控制(辟谣) 深入理解Mysql——schema设计与大表alter操作 mysql explain-output 译文数据类型整数与小数类型整数类型有如转载 2018-02-07 12:00:47 · 252 阅读 · 0 评论 -
深入理解Mysql——锁、事务与并发控制(辟谣)
深入理解Mysql——锁、事务与并发控制(辟谣)相关文章: 深入理解Mysql——高性能索引与高性能SQL 深入理解Mysql——锁、事务与并发控制(辟谣) 深入理解Mysql——schema设计与大表alter操作 mysql explain-output 译文本文对锁、事务、并发控制做一个总结,看了网上很多文章,描述非常不准确。如有与您观点不一致,欢迎有理有转载 2018-01-19 14:15:25 · 306 阅读 · 0 评论 -
mysql查看所有存储过程
查询数据库中的存储过程方法一: select `name` from MySQL.proc where db = 'your_db_name' and `type` = 'PROCEDURE' 方法二: show procedure status;查看存储过程或函数的创建代码show create procedure proc_name;转载 2016-09-14 15:49:50 · 605 阅读 · 0 评论 -
MySql的优化步骤
MySql优化的一般步骤:1.通过show status 命令了解各种sql的执行效率 SHOW STATUS提供msyql服务器的状态信息 一般情况下,我们只需要了解以”Com”开头的指令 show session status like ‘Com%’:显示当前的连接的统计结果 show global status like ‘Com%’ :显示自数据库上次启动至今的转载 2017-08-11 18:29:03 · 276 阅读 · 0 评论 -
Mysql SQL优化&执行计划
SQL优化准则禁用select *使用select count(*) 统计行数尽量少运算尽量避免全表扫描,如果可以,在过滤列建立索引尽量避免在where子句对字段进行null判断尽量避免在where子句使用!= 或者<>尽量避免在where子句使用or连接尽量避免对字段进行表达式计算尽量避免对字段进行函数操作尽量避免使用不是复合索引的前缀列进行过滤连接尽量少排序,如果可以,转载 2017-08-11 18:31:12 · 326 阅读 · 0 评论 -
一分钟教你知道乐观锁和悲观锁的区别
悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。(先拿锁,类似于synchronized)乐观锁(Optimistic Lock), 顾名思义,就是很乐观,每次去...转载 2017-08-12 15:32:25 · 1007 阅读 · 0 评论 -
mysql悲观锁与乐观锁
最近学习了一下数据库的悲观锁和乐观锁,根据自己的理解和网上参考资料总结如下:悲观锁介绍(百科):悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中, 将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了 加转载 2017-08-12 16:23:25 · 261 阅读 · 0 评论 -
【MYSQL】查询不区分大小写
MySQL在默认的情况下查询是不区分大小写的,例如:mysql> create table t1( -> name varchar(10));Query OK, 0 rows affected (0.09 sec)mysql> insert into t1 values('you'),('You'),('YOU');Query OK, 3 rows affec转载 2017-09-01 17:47:38 · 317 阅读 · 0 评论 -
地理位置经纬度在Mysql中用什么字段类型
创建 MySQL 表时,您应当特别注意 lat 和 lng 属性。鉴于 Google Maps 目前的缩放能力,您只需要精确到小数点后六位数。为了让表占用的存储空间降至最低,您可以将 lat 和 lng 属性指定为大小是 (10,6) 的浮点数。这样,这些字段将会存储小数点后 6 位数以及小数点前最多 4 位数,如 -123.456789 度。经纬度的定义使用 decimal , 在Jav原创 2018-01-05 11:46:47 · 22087 阅读 · 0 评论 -
MySQL索引失效的几种情况
https://www.cnblogs.com/binyue/p/4058931.html1.索引不存储null值更准确的说,单列索引不存储null值,复合索引不存储全为null的值。索引不能存储Null,所以对这列采用is null条件时,因为索引上根本没Null值,不能利用到索引,只能全表扫描。为什么索引列不能存Null值?将索引列值进行建树,其中必然涉转载 2018-01-23 10:15:04 · 245 阅读 · 0 评论 -
Mysql引起索引失效的原因总结
http://blog.csdn.net/hehexiaoxia/article/details/54312130在数据库中做查询等操作,经常发现查询很慢,但是已经在列上建了索引,最后经过研究发现,很多种情况引起了索引失效。下面就对遇到的引起索引失效的原因做一下总结(不包括索引本身无效的情况),欢迎博友们补充。1、对单字段建了索引,where条件多字段。例:建了以下索引转载 2018-01-23 10:16:05 · 552 阅读 · 0 评论 -
MySQL中CREATE DATABASE和CREATE SCHEMA区别
http://blog.useasp.net/archive/2013/05/21/The-difference-between-create-database-and-create-schema-in-mysql.aspx在使用MS SQL的时候,一般创建数据库我们都习惯于使用CREATE DATABASE 来完成,而使用CREATE SCHEMA来创建架构,但是在MySQL中,官方的中转载 2018-01-05 18:23:20 · 19631 阅读 · 0 评论 -
Intellij IDEA 14中使用MyBatis-generator 自动生成MyBatis代码
参考: http://blog.csdn.net/sunny243788557/article/details/45166397Intellij IDEA 14 作为Java IDE 神器,接触后发现,非常好用,对它爱不释手,打算离开eclipse和myeclipse,投入Intellij IDEA的怀抱。 然而在使用的过程中会发现Intellij IDEA也有一些不尽原创 2018-01-05 18:57:11 · 348 阅读 · 0 评论 -
MySQL详解--锁
MySQL详解--锁锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。本章我们着重讨论MySQL锁机制的特点,常见的锁转载 2018-01-17 17:33:37 · 335 阅读 · 0 评论 -
【MySQL之设计表(一)】**重要***MySQL数据库表设计中的注意事项
http://blog.csdn.net/cangchen/article/details/45672643一、设计原则1.选择优化的数据类型MySQL支持很多种不同的数据类型,并且选择正确的数据类型对于获得高性能至关重要。不管选择何种类型,下面的简单原则都会有助于做出更好的选择:(1).更小通常更好一般来说,要试着使用正确地存储和表示数据的最小类型。更小的数据类型通常更快转载 2018-01-09 17:32:10 · 365 阅读 · 0 评论 -
MySQL 加锁处理分析
MySQL 加锁处理分析目录 1背景 11.1 MVCC:Snapshot Read vs Current Read 21.2 Cluster Index:聚簇索引 31.3 2PL:Two-Phase Locking 31.4 Isolation Level 42一条简单SQL的加锁实现分析 52.1 组合一:id主键+RC转载 2018-01-18 15:05:43 · 199 阅读 · 0 评论 -
mysql的锁--行锁,表锁,乐观锁,悲观锁
mysql的锁--行锁,表锁,乐观锁,悲观锁一 引言--为什么mysql提供了锁 最近看到了mysql有行锁和表锁两个概念,越想越疑惑。为什么mysql要提供锁机制,而且这种机制不是一个摆设,还有很多人在用。在现代数据库里几乎有事务机制,acid的机制应该能解决并发调度的问题了,为什么还要主动加锁呢? 后来看到一篇文章,“防止更新丢失,并不能单靠数据库事务控制器来解决,需要应用程序对要更新的数转载 2018-01-18 17:45:35 · 272 阅读 · 0 评论 -
MySQL锁详解
MySQL锁详解一、概述数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则。对于任何一种数据库来说都需要有相应的锁定机制,所以MySQL自然也不能例外。MySQL数据库由于其自身架构的特点,存在多种数据存储引擎,每种存储引擎所针对的应用场景特点都不太一样,为了满足各自特定应用场景的需求,每种存储引擎的锁定机制都是为各自所面对的特定场景而优化转载 2018-01-17 17:31:12 · 195 阅读 · 0 评论 -
mysql 获取当前日期及格式化
MySQL 获取当前日期及日期格式获取系统日期: NOW()格式化日期: DATE_FORMAT(date, format)注: date:时间字段format:日期格式返回系统日期,输出 2009-12-25 14:38:59select now();输出 09-12-25select date_format(now(),'%y-%m-%d');根据forma转载 2016-08-30 15:32:24 · 536 阅读 · 0 评论