-
yexindonglai@163.com
2022-03-01 10:50
Mysql
945°
0
前言在执行一条sql的时候,在mysql内部都会通过以下四个流程+--------------+|连接器|+--------------+\|/+--------------+|分析器|+--------------+\|/+--------------+|优化器|+--------------+\|/+--------------+|执行器|+--------------+我们都知道索引其中一个最主要作用就是加快数据的访问,那么回表、索引覆盖、最左匹配、索引下推都是mysql的内部优化方式,部分的功能是Mysql5.6的版本上推出的,都是针对索引的优化,如果表中没有索引的情况下,那么就不会有
-
yexindonglai@163.com
2022-03-01 10:49
Mysql
1104°
0
join算法驱动表和非驱动表的区别==AjoinB连表时,一定先查A表再查B表吗?==1、SimpleNested-LoopJoin,简单嵌套-无索引的情况2、IndexNested-LoopJoin-有索引的情况3、BlockNested-LoopJoin,joinbuffer缓冲区缓冲区大小数据量大的表和数据量小的表如何选择连接顺序细节join算法mysql只支持一种join算法:Nested-LoopJoin(嵌套循环连接),但Nested-LoopJoin有三种变种:SimpleNested-LoopJoin,简单嵌套IndexNested-LoopJoin,索引嵌套BlockNest
-
yexindonglai@163.com
2022-03-01 10:49
Mysql
948°
0
什么是分区表分区表应用场景分区表的限制2、列表分区(list分区)3、列分区4、hash分区5、秘钥分区(key分区)6、子分区添加分区分区表原理如何使用分区表注意事项什么是分区表MySQL从5.1版本开始支持分区功能,分区是将一个表的数据按照某种方式,比如按照时间上的月份,分成多个较小的,更容易管理的部分,但是逻辑上仍是一个表。还没出现分区表的时候,所有的数据都是存放在一个文件里面的,如果数据量太大,查询数据时总是避免不了需要大量io操作;使用分区表后,每个分区存放不同的数据。这样不但可以减少io。还可以加快数据的访问;为了保证MySQL的性能,我们都建议mysql单表不要太大,建议是:单表
-
yexindonglai@163.com
2022-03-01 10:48
Oracle
1061°
0
说明使用方法实战其他用法开窗函数为:over()说明oracle开窗函数和groupby还是有不一样的地方,groupby是分组后就直接去重了,开窗函数分组后不去重,并且还可以进行排序使用方法over(PARTITIONBYage)表示对结果集按照age进行分区实战新建一个user_test表,建表语句为:createtableuser_test(idnumber(20)notnull,namevarchar2(50),agenumber(3))表数据如下,对没错,一共就四条数据,数据量少的情况下理解更容易,不然只有写文章的人能看懂,看文章的人却一脸懵;当我们使用groupby语句时,得出来的
-
yexindonglai@163.com
2022-03-01 10:45
Mysql
1247°
0
什么是锁?表锁行锁memorymyisam表共享读锁当前线程读,其他线程读(myisam)当前会话先读后写(myisam)当前会话程读,其他线程写(myisam)会话1给A表加读锁,会话1在查询查询其他表(myisam)只锁当前会话的读锁(readlocal)表独占写锁innodb事务的四个特征(ACID)脏读幻读不可重复读加共享锁(innodb)事务1读,其他事务也可以读(innodb)事务1读,事务2写会阻塞(innodb)事务A写会报错(innodb)加排它锁(innodb)意向共享锁意向排他锁自增锁模拟innodb死锁行锁演示完什么是锁?锁的存在是为了数据的一致性,我们都知道mysql
-
yexindonglai@163.com
2022-03-01 10:44
Mysql
1007°
0
mysql参数修改参数值[mysql]参数说明字符相关连接相关(connection)日志相关(log)缓存相关(cache)innodb相关mysql参数MySQL提供了相当多的系统参数,涉及方方面面。我们可以使用show关键字来查看:showvariableslike'%autocommit%';或者showstatuslike'%xxx%';修改参数值mysql有一些参数是可以直接修改的,比如mysql的自动提交是默认开启,我们修改为关闭自动提交setautocommit=1;当然也有些系统参数不能直接修改里面的值,当我们修改时会报错,就像这样:mysql>set@@ft_max_wor
-
yexindonglai@163.com
2022-03-01 10:43
Mysql
887°
0
前言开启profilingshowprofiles查看sql执行所需时间startingcheckingpermissionsOpeningtablesSystemlockSendingdatashowwarnings查看警告信息其他用法完前言Showprofiles最大的好处是可以查看执行sql语句时各个环节的执行时间,Showprofiles是5.0.37之后添加的,要想使用此功能,要确保版本在5.0.37之后。可以执行sqlselectversion();查看当前数据库版本。开启profiling启动数据库后,profiles默认是关闭的,并且开启后只存在当前会话,因为它是保存在内存中的
-
yexindonglai@163.com
2022-03-01 10:42
Mysql
657°
0
mysql执行计划mysql那三张著名的练习表执行计划中包含的信息id完mysql执行计划在企业的应用场景中,为了知道优化SQL语句的执行,需要查看SQL语句的具体执行过程,以加快SQL语句的执行效率。可以使用explain+SQL语句来模拟优化器执行SQL查询语句,从而知道mysql是如何处理sql语句的。官网地址:https://dev.mysql.com/doc/refman/5.5/en/explain-output.htmlmysql那三张著名的练习表在介绍explain执行计划之前,我们先把这三张表提前建好,一会要用到;--部门表createtabledept(deptnoi
-
yexindonglai@163.com
2022-03-01 10:40
Mysql
645°
0
前言示例前言showprocesslist命令可以看到当前正在运行的线程信息,每查询一次sql都会新建一个会话,执行完后会话自动断开。这个命令也可以用来查找sql死锁、查询慢以及cpu占用率高的是哪个条sql导致的;当系统出现死锁死后,找到对应id值,然后通过kill命令杀死正在死锁的线程以解决问题。示例如果你是普通用户,你只能查看自己执行过的线程,如果管理员用户,那么你可以查看所有的线程;接下来我们执行一条语句,因为这个表中有千万数据的,所以执行起来会有点慢,selectcount(*)fromstudent执行上面的sql后,在开启一个新窗口,用来执行showprodesslist,通过下
-
yexindonglai@163.com
2022-03-01 10:35
Eureka
1344°
0
什么是注册中心注册中心的作用eureka原理1.、client端注册2、心跳与故障检测3、EurekaClient会缓存注册表信息4、EurekaServer之间会相互复制注册表信息5、一级缓存和二级缓存6、Cancel:服务下线7、Eviction服务剔除8、自我保护机制什么是注册中心全称为:服务注册与发现,rpc远程调用框架核心思想,在于注册中心,使用注册中心管理每个服务与服务之间的依赖关系,这种关系被称为服务治理概念;任何rpc远程调用框架都至少有一个注册中心;==服务注册==将服务信息注册到注册中心,相当于告诉公司的人,我已经打卡上班了,可以分配工作任务给我了,比如现在我们有一个服务消