
MySQL
文章平均质量分 74
弓长木子_J
Those times when you get up early and you work hard
Those times when you stay up late and you work hard.
Those times when you don't feel like working you're too tired
and you don't want to push youself. But you don it anyway.
That is actually the dream.
This's the dream.
展开
-
SQL优化-优化点归纳(持续更新)
你肯定遇到过面试官问你:你对SQL优化了解多少?怎么优化的?这时候的你是不是能够侃侃而谈呢?其实不管是谁,就算不是详细赘述,就算不是在工作中真正的实践过,或多或少都能说出不少东西。这篇文章初始目的是简单收录我日常工作学习中关于SQL优化的各种知识点,我就来个先追求多,再追求精。1、创建索引对于查询占主要的应用来说,索引显得尤为重要。很多时候性能问题很简单的就是因为我们忘了添加索引而造成的,或者说没有添加更为有效的索引导致。如果不加索引的话,那么查找任何哪怕只是一条特定的数据都会进行一次全表扫描,如果一原创 2021-06-25 00:10:24 · 247 阅读 · 0 评论 -
数据库中的疑难杂症(持续更新)
作为一个“搬运工”,SQL是无处不在的,我对各个模块有记录一些小疑问的习惯,毕竟也不知道什么时候会有个“小问号”从脑袋中冒出来,这样记录这些疑问,并记录下这些疑问的解答,方便今后查阅和积累。1.mysql中:=和=的区别??(1)=只有在set和update时才是和:=一样,赋值的作用,其它都是等于的作用。鉴于此,用变量实现行号时,必须用:=(2):=不只在set和update时时赋值的作用,在select也是赋值的作用。@num:=@num+1,:=是赋值的作用,所以,先执行@num+1,然后原创 2020-12-21 18:05:09 · 601 阅读 · 0 评论 -
MySQL和DB2对比
以前长期用的MySQL,现在项目用的DB2,学习是避免不了的,那就勇往直前。在MySQL的基础上对比DB2,这样既可以巩固MySQL,又可以更快接收DB2的知识内容,所以先正一篇关于两种数据库对比的文章。编号功能MySQLDB21账号管理数据库用户名+IP地址操作系统用户2权限管理可以批量grant与revoke只能单独授权包括最小单元3日志管理归档日志与事务日志没有关系归档日志由事务日志产生4锁的管理MVCC实现锁的并发控制内存模型实现锁原创 2021-05-21 00:58:21 · 4321 阅读 · 1 评论 -
MySQL的InnoDB和MyISAM比较
InnoDB和MyISAM数据库引擎是MySQL数据库最常用的两个引擎,所以接触比较多,在这里就来用我自己的理解归纳总结下。先就各引擎对一些功能支持与否进行梳理:MyISAM:支持:1.大量查询操作2.表锁3.支持 Btree、Full-text 等索引4.支持没有主键和唯一索引5.更适合分区表不支持:1.大量写操作2.事务3.外键4.不支持 Hash 索引InnoDB...原创 2020-04-13 02:03:17 · 186 阅读 · 0 评论 -
MySQL查询和修改连接数
MySQL中如果是root帐号,你能看到所有用户的当前连接;如果是其它普通帐号,只能看到自己占用的连接。1.查看当前连接详情show processlist;和show full processlist;如果是root帐号,你能看到所有用户的当前连接。如果是其它普通帐号,只能看到自己占用的连接。show processlist;只列出前100条show full processlist;全列出show processlist;命令结果解析:Id:正在运行服务器线程idUser:用户名,连接中原创 2021-03-16 15:03:36 · 412 阅读 · 0 评论 -
MySQL中忘记用户密码怎么办?MySQL如何获取用户密码
日常使用MySQL的过程中我们时常会遇到忘记用户密码的情况,面对这种情况我们该如何解决呢?直接更改用户密码?当然这是可行的,但对于有大量运用的数据库直接更改密码牵连很多,所以并不提倡这种方式,哪该怎么做呢?咱是不是可以反向破解密码呢?答案是肯定的。这篇文章主要就讲述MySQL如何破解密码。一、获取用户密码首先,我们知道MySQL中有专门存放用户信息的表,即mysql库中的user表。其中字段user即为用户名,password字段为用户密码,需要注意的是MySQL5.7及之后的版本用的都是authen原创 2021-03-16 11:55:30 · 2527 阅读 · 0 评论 -
MySQL中误删数据如何恢复
这个问题可能你在面试中或者日常中都会遇到,那么这篇文章就亲测进行编写,即为了巩固学习,也为了以后遇到这种情况能够自如应对。首先我们知道MySQL中数据库表的增删改操作都会在binlog日志中有相关记录,所以我们恢复数据也同样离不开binlog日志,同样我们日常做好数据备份也是必不可少的。首先将之前一次的备份文件导入,然后将binlog日志文件转换成sql文件,再将其中的删除语句给删了,然后将这个日志文件转换而来的sql文件导入即可恢复数据。其中用到的一些命令:show master logs;sh原创 2021-03-15 15:56:20 · 2341 阅读 · 0 评论 -
MySQL的备份和恢复
整了半天MySQL的数据备份,结果思路被其他的问题牵走了,第二天才发现我忘了记录,没有找到自己关于MySQL数据备份的相关博客,所以为了方便今后查阅,也方便学习巩固,特此写一篇关于MySQL数据备份以及恢复的博客。一、实例这里先附上我在Windows中MySQL进行的备份和恢复实例操作。#备份C:\Program Files\MySQL\MySQL Server 5.7\bin>mysqldump -u root -p my_test student > C:\Users\ZLJ\Des原创 2021-03-14 23:55:14 · 221 阅读 · 0 评论 -
Windows上MySQL开启Binlog日志以及如何查看
MySQL的Binlog日志内容量巨大,这里就不赘述了,后面有时间会做专门的关于MySQL的Binlog日志的总结,不过我们也得知道Binlog日志是干啥的。一、Binlog日志1.什么是Binlog日志?binlog是记录所有数据库表结构变更(例如CREATE、ALTER TABLE…)以及表数据修改(INSERT、UPDATE、DELETE…)的二进制日志。binlog不会记录SELECT和SHOW这类操作,因为这类操作对数据本身并没有修改,但你可以通过查询通用日志来查看MySQL执行过的所有语原创 2021-03-14 21:31:02 · 6468 阅读 · 0 评论 -
Windows中通过cmd登陆MySQL
首先我们都知道,当我们在Windows中安装MySQL后,我们可以在“开始”中找到客户端界面对应的快捷键,点击即会弹出MySQL客户端窗口,输入密码即完成登陆。但这里要说的是如何通过cmd登陆MySQL。步骤如下:1.首先需要找到MySQL的程序路径,然后在cmd中跳转到该路径的bin目录下(因为mysql.exe就是在该目录下)。2.命令登陆:mysql -uusername -ppassword例如:C:\WINDOWS\system32>cd C:\Program Files\MyS原创 2021-03-14 19:22:13 · 1720 阅读 · 0 评论 -
Navicat连接云服务器上的MySQL
Navicat连接云服务器上的MySQL今天用Navicat连接云服务器上的MySQL,遇到了一些问题,就在这里用博客记录一下。过程演变首先我是想当然的以为就跟连接本地数据似的直接填入用户名密码就一切ok,但随后问题就来了,连接不上啊!如下图所示:第一反应是很懵逼,随后截个图发给个大神,大神的第一反应是叫我先telnet一下,确保网络是通的,我这才反应过来需要telnet一下mysql的...原创 2019-09-25 22:35:07 · 491 阅读 · 0 评论 -
MySQL和Oracle中where条件语句的执行顺序
面试的时候你可能遇到过面试官提出:SQL的书写顺序,SQL的执行(解析)顺序,WHERE条件执行顺序等问题。这篇文章就简要总结下上面的几个问题。一、MySQL中SQL的书写顺序和执行顺序sql编写顺序:select distinct…from…join…on…where…group by…having…order by…limit…sql解析顺序:from…on…join…where…group by…having…select distinct…order by…limit…二、MySQL和O原创 2021-03-03 23:20:03 · 5054 阅读 · 4 评论 -
MySQL中函数与存储过程
这方面不是经常会写,一会就忘了,所以用该篇文章来作为学习记录,方便查阅,同时方便巩固学习。原创 2021-01-17 23:29:08 · 144 阅读 · 0 评论 -
MySQL中CREATE语法
初学数据库时,身为DDL的CREATE语句就是必修的,也可以说是最早接触的,可能很多人还是只清楚简单的CREATE TABLE table_name (…);我曾经也是如此,顶多知道括号后面可以跟一些引擎设置,字符集设置等等,这篇文章就是用来升华的,深入了解下CREATE基本语法。Create [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,…)][table_options] [select_statement]...原创 2021-01-17 01:27:09 · 4657 阅读 · 0 评论 -
MySQL中临时表(TEMPORARY)
create temporary table table_name;原创 2021-01-16 17:27:57 · 12992 阅读 · 0 评论 -
MySQL中的存储引擎(持续更新)
MySQL中的存储引擎是重要内容,也是基本内容,对存储引擎了解更多则是对MySQL的应用能力会有提升。因现阶段我实际使用到所有的存储引擎,但以备不时之需,准备写一篇关于所有存储引擎的文章,当然,我这里只是简介这些存储引擎,后续可能随着学习的深入,更新各个引擎相关的细节知识点。若想更深入学习,建议还是从官网入手。一、MyISAMMySQL5.0之前的默认数据库引擎,最为常用。拥有较高的插入,查询速度,但不支持事务。二、InnoDB事务型数据库的首选引擎,支持ACID事务,支持行级锁定, MySQL 5原创 2020-11-29 20:58:41 · 213 阅读 · 0 评论 -
MySQL中show命令的使用(持续积累更新)
show命令的使用能帮助我们获取到很多的系统信息,这篇文章就帮助记录学习show命令的使用。原创 2020-11-08 22:36:21 · 3609 阅读 · 1 评论 -
MySQL中自带的数据库表相关介绍(持续更新)
用过MySQL的在第一次登录MySQL的时候会见到四个自带的数据库:information_schemaperformance_schemamysqltest作为MySQL用户,如果想深入学习MySQL,对这四个库以及库中的表的学习是有必要的,下面就开始介绍这些库表:一、information_schema二、performance_schema三、mysql四、test...原创 2020-10-12 00:29:51 · 4056 阅读 · 0 评论 -
MySQL的命令工具(持续积累更新)
随着学习的深入,会发现MySQL也有很多命令工具方便我们的开发,这篇文章就用来记录我学习过程中对MySQL工具的一些积累:一、mysqlcheckMySQL mysqlcheck客户端主要用来检查(check)、修复(repair)、分析(analyze)、优化(optimize)表。使用mysqlcheck的好处是不需要停止服务器来检查或修复表,mysqlcheck为用户提供了一种方便的使用SQL语句CHECK TABLE、REPAIR TABLE、ANALYZE TABLE和OPTIMIZE TAB原创 2020-10-11 22:19:22 · 314 阅读 · 0 评论 -
MySQL优化-检查、修复、分析、优化
在介绍MySQL的检查、修复、分析、优化等知识点之前,先来了解下MySQL的命令行工具mysqlcheck:mysqlcheckmysqlcheck -u username -p password [-c/-r/-a/-o] dbname [tablename]# -c check table tablename(检查表)# -r repair table tablename(修复表)# -a analyze table tablename(分析表)# -o optimize t原创 2020-10-10 01:38:17 · 472 阅读 · 0 评论 -
MySQL中的“骚操作”
1.查询指定数据库中指定的字段名存在哪些表中:SELECT * from information_schema.columns where TABLE_SCHEMA='db_name' and COLUMN_NAME='filed_name';2.查询很多字段但只去重其中一个或几个字段:SELECT a,b,c,d FROM TABLE WHERE id IN (SELECT min(id) FROM TABLE GROUP BY b);...原创 2020-08-17 14:28:10 · 515 阅读 · 0 评论 -
MySQL中的变量积累(持续更新)
1.字符集相关变量show variables like "%char%";character_set_client为客户端编码方式;character_set_connection为建立连接使用的编码;character_set_database数据库的编码;character_set_results结果集的编码;character_set_server数据库服务器的编码;character_set_filesystem文件系统的编码格式;character_set_system数据库系原创 2020-08-17 13:12:42 · 262 阅读 · 0 评论 -
MySQL中变量的详解(系统变量和状态变量)
MySQL的变量分为以下两种:1)系统变量:配置MySQL服务器的运行环境,可以用show variables查看2)状态变量:监控MySQL服务器的运行状态,可以用show status查看系统变量系统变量按其作用域的不同可以分为以下两种:1)分为全局(GLOBAL)级:对整个MySQL服务器有效2)会话(SESSION或LOCAL)级:只影响当前会话有些变量同时拥有以上两个级别,MySQL将在建立连接时用全局级变量初始化会话级变量,但一旦连接建立之后,全局级变量的改变不会影响到会话级变量。原创 2020-08-17 13:10:18 · 1059 阅读 · 0 评论 -
Mybatis中SQL书写过程中特殊符号的写法
一、直接替换二、CDATA<![CDATA[SQL语句]]>原创 2020-08-02 01:45:13 · 574 阅读 · 0 评论 -
避免索引失效的一些原则
1.复合索引,不要跨列或无序使用,否则会使组合索引失效复合索引,尽量使用全索引匹配2.不要在索引上进行任何操作(计算、函数、类型转换),否则索引失效EXPLAIN SELECT * FROM book WHERE authorid = 1 AND typeid = 2;//用到了at2个索引EXPLAIN SELECT * FROM book WHERE authorid = 1 AND typeid*2 = 2;//用到了a1个索引EXPLAIN SELECT * FROM book WHE原创 2020-06-30 02:09:34 · 818 阅读 · 0 评论 -
SQL优化-explain的用法(实例解析)
前面写了两篇博客,关于单表和多表的优化,这两篇博客的基础其实就是explain,explain是必须掌握的知识点,我曾尝试过死记硬背,但效果甚微,还是实践来的实在。本文就一些实例来解析explain的用法。...原创 2020-06-21 19:25:45 · 5366 阅读 · 0 评论 -
MySQL中的函数总结归纳
我们都知道数据库中自带很多函数,如果能灵活使用便能很大程度上方便我们的开发,MySQL亦是如此。最近主要从事sql方面的工作,接触了不少函数,写这篇博客就是方便学习sql函数加深记忆,也是为了今后要用能有地可寻。开始吧!原创 2020-06-16 01:38:22 · 1387 阅读 · 0 评论 -
SQL优化-多表优化
前面已经写了一篇单表优化的博客,这里继续关于多表优化的内容。其实,SQL优化路很长,我也是初学,在这里记录的优化方案都是比较基础的,但是日常写SQL的过程中如果能够根据优化知识注意SQL的书写,那性能肯定是会有一定提升的。一起努力吧!这里附上官网上关于优化的描述(我用的5.7,这里就附上5.7):https://dev.mysql.com/doc/refman/5.7/en/optimization.html一、两表优化:CREATE TABLE teacher2( tid int(4) prim原创 2020-06-09 22:16:16 · 535 阅读 · 0 评论 -
SQL优化-单表优化
最近在学SQL优化相关的知识,这里就写篇关于单表优化相关的博客,方便以后写sql时能直接注意到一些关于优化方面的问题,从而能sql性能。本文取例自颜群老师的讲课。在这篇文章之前必须会explain分析sql语句。CREATE TABLE book(bid int (4) primary key,name VARCHAR(20) NOT NULL,authorid INT(4) NOT NULL,publicid INT(4) NOT NULL,typeid INT(4) NOT NULL)原创 2020-06-08 23:19:21 · 474 阅读 · 2 评论 -
Memory引擎(MySQL)
Memory引擎是MySQL的一种存储引擎,用作临时表。 如果需要快速地访问数据,并且这些数据不会被修改,重启以后丢失也没有关系,那么使用Memory表(以前也叫做HEAP)是非常有用的。Memory表至少比MyISAM表要快一个数量级,因为所有的数据都保存在内存中,不需要进行磁盘I/O。Memory表的结构在重启以后还会保留,但数据会丢失。 Memory表在很多场景可以发挥好的作用:...原创 2020-04-23 15:23:50 · 374 阅读 · 0 评论 -
MVCC(Multiversion Concurrency Control)多版本并发控制
出自《高性能MySQL(第3版)》原创 2020-04-22 11:17:48 · 522 阅读 · 0 评论 -
事务详解(基于MySQL)
在理解事务的概念之前,接触数据库系统的其他高级特性还言之过早,这里就着重于事务进行分析。原创 2020-04-21 22:36:14 · 631 阅读 · 0 评论 -
MyISAM的表锁和InnoDB的行锁
锁机制是数据库中的一大重点,这里就来说一下!原创 2020-04-20 17:17:40 · 1123 阅读 · 0 评论 -
索引学习思路导向(基于MySQL)
索引 学习思路导向很久没有写过博客,最近正好在做MySQL相关的工作,而索引便是数据库中非常重要知识点,今天就在这里给大家建议一些索引的学习思路,在面试的时候也会很有用处,面试的时候数据库会是面试的一大重点,可以说是“逢面必问”,而索引是数据库的一大重点,在数据库优化过程中起到很大的作用。所以在面试的时候如果问到索引,很多面试官会按照我给的思路来向你提问,当然,如果没有这样,你也可以将话题向这些...原创 2020-04-13 00:19:44 · 284 阅读 · 0 评论