保健励志美文体育育儿作文
投稿投诉
作文动态
热点娱乐
育儿情感
教程科技
体育养生
教案探索
美文旅游
财经日志
励志范文
论文时尚
保健游戏
护肤业界

MySQL面试游戏MySQL连连问,你能闯到第几关?

  基础篇SQL篇运维篇体系架构篇备份恢复篇高可用篇性能优化篇故障处理篇基础篇
  第01关:MySQL数据库有哪些优点?1、MySQL是开源的,允许任何人去下载使用,允许任何人去研究他的源代码并可以根据自己的需要去修改他,使之满足自己的开发需求2、支持Windows,Linux,MACOS等多种操作系统,为java,python,c,c,php等多种开发语言提供了API3、即可作为一个应用程序运行在用户客户端网络环境中,也能嵌入其他软件中作为一个库4、支持多线程,充分利用CPU资源5、可以从多个角度对数据库性能进行优化,例如:充分利用索引带来的查询效率,减少IO频率;优化锁的使用,避免多线程并发下线程阻塞等待;还有缓存bufferpool等等也在优化的范围;最终就是通过提高硬件性能,提高服务器的性能指标;当数量已经不是一台服务器能够处理的时候,那就要考虑读写分离,分库分表等,从改变体系架构的角度出发了6、MySQL支持可插拔式的存储引擎模式,可以根据自己的需求选择适当的存储引擎。例如:MyISAM默认认为写比读更重要,所以MyISAM更适合于写多读少的业务环境;Memonery内存数据库,受内存大小限制,不适用于数据量的生产环境,但是查询效率高
  第02关:说说三个范式?第一范式:所有的字段均不可分割,是原子的,这些字段属性只能是基本数据类型第二范式:在第一方式的基础之上,要求所有的非主键字段完全依赖于主键,不能有部份依赖第三范式:在第二范式的基础之上,要求所有的非主键字段不能存在依赖传递在设计数据库的时候必须严格遵守三范式,如果不遵守,必须有充足的理由
  第03关:事务的四大特性是什么?1、Atomicity(原子性):事务由一系列SQL语句组成的逻辑单元,要么全部执行,要么全部都不执行2、Consistency(一致性):事务对数据中的修改,使数据从一种状态转换成另一种一致性状态。(可以把数据比作能量,数据同样也遵循能量守恒定理)3、Isolation(隔离性):多个事务可以并发执行,但是多个事务之间的修改操作保持一定的不可见性4、Durability(持久性):事务一旦提交,对数据的修改将永久持久化磁盘当中,即使出现宕机,断电等状况,事务对数据产生的修改也会永久生效
  第04关:在Linux下安装MySQL有哪几种方式?RPM(RedhatPackageManage):安装简单,适合初学者学习使用,一台服务器只能安装一个MySQL,RedHatEnterpriseLinuxOracleLinux二进制(BinaryPackage):安装简单;可以安装到任何路径下,灵活性好;一台服务器可以安装多个MySQL,LinuxGeneric源码(SourcePackage):在实际安装的操作系统进行可根据需,要定制编译,最灵活;性能最好;服务器安装多个SourceCode1、从官网下载对应的压缩包:mysql5。7。9linuxglibc2。5x8664。tar。gz(https:downloads。mysql。comarchivescommunity)2、上传到linux服务器中并解压缩,tarzvxfmysql5。7。9linuxglibc2。5x8664。tar。gz(上传目录:usrlocal)3、修改配置文件etcmy。cnf4、创建mysql用户组和用户名:groupaddmysql,useraddrgmysql5、在目录usrlocalmysql下创建data目录6、将mysql修改为mysql所有:chownRmysql。mysqlusrlocalmysql7、初始化:mysqldinitializeusermysqlbasedirusrlocalmysqldatadirusrlocalmysqldata(保留临时密码)8、将supportfilemysql。server复制到etcinit。d目录下,》servicemysqlstart9、授权chmodR777usrlocalmysql10、使用root和临时密码登录mysql
  第05关:为什么要升级MySQL8。0,升级前注意事项?为什么升级MySQL1、基于安全考虑2、基于性能和稳定性考虑:mgr复制,并行复制writeset等功能,性能提升3、新的功能:Hashjoin,窗口函数,DDL即时,json支持4、原始环境中版本太多,统一版本5、8。0版本基本已到稳定期,可以大量投入生产环境中升级前注意事项1、字符集设置:为了避免新旧对象字符集和校验规则不一致现象,在配置文件中将字符集和校验规则设置为旧版相同即可2、密码认证插件的变更:为了避免连接问题,可以仍采用5。7的mysqlnativepassword认证插件。3、是否需要手动修改系统表:在MySQL8。0。16版本之前,需要手动的执行mysqlupgrade来完成该步骤的升级,在MySQL8。0。16版本及之后是由mysqld来完成该步骤的升级4、高可用架构:需要先升级从库,再逐步升级主库
  第06关:存储引擎如何选择?1、如果没有特殊需求,使用默认的Innodb就好。Innodb引擎由于其对事务的完整性参照,更高的并发能力,逐渐取代了MyISAM2、根据每个存储引擎提供的核心功能以及应用场景进行分析。存储引擎核心功能一般分为四类:支持的数据类型,锁机制,索引,事务3、MyISAM设计的初衷认为写操作比读操作更重要,更适合读写插入的应用程序,比如博客,新闻4、更新(删除)操作频率也高,或者要保证数据的完整性,并发量高,支持事务和外键。比如OA自动化办公系统,如下是InnoDB引擎的4大特点:插入缓冲自适应哈希双重写预读
  第07关:事务隔离级别有哪些?读未提交:一个事务对数据的更新操作,即使该事务没有提交,其他事务也是可见的读已提交:一个事务对数据的更新操作,在事务提交之前,其他任何事务都是不可见可重复读:在一个事务中重复读取过滤条件相同的数据,得到的结果使相同的串行化:每个事务同步执行,效率低,一般不建议使用这里需要注意的是:Mysql默认采用的REPEATABLEREAD隔离级别Oracle默认采用的READCOMMITTED隔离级别SQL篇
  第08关:简述以下SQL及分类结构化查询语言(StructuredQueryLanguage)简称SQL,是一种数据库查询语言。作用:用于存取数据、查询、更新和管理关系数据库系统。基本的分类如下:1。数据查询语言(DataQueryLanguage,DQL)负责进行数据查询而不会对数据本身进行修改的语句,这是最基本的SQL语句。2。数据定义语言(DataDefinitionLanguage,DDL)负责数据结构定义与数据库对象定义的语言,由CREATE、ALTER与DROP三个语法所组成3。数据操纵语言(DataManipulationLanguage,DML)负责对数据库对象运行数据访问工作的指令集,以INSERT、UPDATE、DELETE三种指令为核心,分别代表插入、更新与删除。4。数据控制语言(DataControlLanguage)它可以控制特定用户账户对数据表、查看表、预存程序、用户自定义函数等数据库对象的控制权。由GRANT和REVOKE两个指令组成
  第09关:drop,delete,truncate的区别
  drop,delete。truncate区别如下图所示:
  drop,delete。truncate区别图
  第10关:MySQL中的关联查询介绍一下1。交叉连接(CROSSJOIN)2。内连接(INNERJOIN)3。外连接(LEFTJOINRIGHTJOIN)4。联合查询(UNION与UNIONALL)5。全连接(FULLJOIN)6。自连接(SelfJOIN)下图可以清晰的描述了各种关联查询结果
  第11关:MySQL中in和exist的区别1、in:in首先查询子查询,然后再与外表做一次笛卡尔积,最后通过in中给定的值进行过滤,适合子查询较小的查询2、exist:首先查询外表,然后遍历外表的数据行,对比子查询中的行,是否与外表相同,如果相同则返回,适合外表较小的查询3、如果查询语句使用了notin那么内外表都进行全表扫描,没有用到索引;而notextsts的子查询依然能用到表上的索引。所以无论那个表大,用notexists都比notin要快。
  第12关:基于MySQL简述以下SQL的生命周期1。应用服务器与数据库服务器建立一个连接2。数据库进程拿到请求sql3。解析并生成执行计划,执行4。读取数据到内存并进行逻辑处理5。通过步骤一的连接,发送结果到客户端6。关掉连接,释放资源运维篇
  第13关:MySQL有哪些数据类型?MySQL支持多种类型,大致可以分为三类:数值、日期时间和字符串(字符)类型1。数值类型整数类型:TINYINT、SMALLINT、MEDIUMINT、INT或INTEGER、BIGINT带小数的类型:FLOAT(单精度)、DOUBLE(双精度)、DECIMAL(定点数)2日期和时间类型DATE:YYYYMMDD日期值TIME:HH:MM:SS时间值或持续时间YEAR:YYYY年份值DATETIME:YYYYMMDDHH:MM:SS混合日期和时间值TIMESTAMP:YYYYMMDDHHMMSS混合日期和时间值,时间戳3。字符串类型CHAR:定长字符串0255字节VARCHAR:065535字节变长字符串频繁改变的列建议用vachar类型BLOB:065535字节二进制形式的长文本数据,二进制大对象TEXT:065535字节长文本数据、varchar的加长增强版LONGTEXT:04294967295字节极大文本数据ENUM:12字节枚举类型(单一值)SET:18字节一个集合
  第14关:MySQL约束有哪几种约束?NOTNULL:用于控制字段的内容一定不能为空(NULL)。UNIQUE:控件字段内容不能重复,一个表允许有多个Unique约束。PRIMARYKEY:也是用于控件字段内容不能重复,但它在一个表只允许出现一个。FOREIGNKEY:用于预防破坏表之间连接的动作,也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。CHECK:用于控制字段的值范围。
  第15关:索引的设计原则?1、适合索引的列应该是出现子where子句或者在联合查询中指定的列2、基数较小的列做索引意义不大3、数据类型较大的列不适合做索引,如果数据类型较大应该使用前缀4、经常更新的字段不适合作为索引列,对标数据的修改同时也要修改索引
  第16关:请简述以下存储过程及其优点1、存储过程:存储过程是一组为了完成特定功能的SQL语句集,编译后保存在数据库中,用户需要使用的时候直接调用即可2、存储过程的优点a。增强了SQL语句的灵活性b。固定的业务模块化封装,较少开发重复性c。执行速度很快d。存储过程被做为一种安全机制,充分的得到了利用
  第17关:MySQL如何使用定时任务(event)?事件(event)是MySQL在相应的时刻调用的过程式数据库对象。一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的事件调度器。事件和触发器类似,都是在某些事情发生的时候启动。事件是根据调度事件来启动的,事件取代了原先只能由操作系统的计划任务来执行的工作,而且MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精确到每分钟执行一次。定时任务的使用SHOWVARIABLESLIKE‘eventsche’;开起定时任务SETGLOBALeventscheduler1;关闭定时任务SETGLOBALeventscheduler0;如果需要长期开起定时任务需要在my。ini中配置eventscheduleron这里设置的就是从202208040300:10:00开始每1天执行一次。创建定时任务的SQL语句如下。CREATEEVENTUntitledONSCHEDULEEVERY‘1’DAYSTARTS‘202208040300:10:00’INTERVAL‘2’SECONDDOselectfrommysql。user;体系架构篇
  第18关:请简述下MySQL体系机构MySQL由数据库和数据库实例组成,是单进程多线程架构1。数据库:物理操作系统文件或者其它文件的集合,在mysql中,数据库文件可以是frm、myd、myi、ibd等结尾的文件,当使用bdb存储引擎时候,不是os文件,是存放于内存中的文件。2。数据库实例:由数据库后台进程线程以及一个共享内存区组成,共享内存可以被运行的后台进程线程所共享。
  第19关:MySQL参数文件位置及如何配置Linux默认的参数文件为etcmy。cnf,但是也不排除其他位置,在mysqld启动的时候,可以加上defaultsfile参数,该参数指定了参数文件的名称。〔rootjeames〕mysqlhelpgrep‘my。cnf’etcmy。cnfetcmysqlmy。cnfusrlocalmysqletcmy。cnf。my。cnf参数文件内容Windows系统配置:〔mysqld〕port3306basedirE:mysql8。0。26winx64datadirE:mysql8。0。26winx64data80263307maxconnections200maxconnecterrors10charactersetserverutf8mb4defaultstorageengineINNODBdefaultauthenticationpluginmysqlnativepasswordLinux系统配置:〔mysqld〕mysqldusrlocalmysql80mysql8019binmysqldsafemysqladminusrlocalmysql80mysql8019binmysqladminport3509basedirusrlocalmysql80mysql8019datadirusrlocalmysql80mysql8019datasocketusrlocalmysql80mysql8019datamysqls80193509。sockdefaultauthenticationpluginmysqlnativepasswordserverid80193509logbindefaulttimezone‘8:00’logtimestampsSYSTEMskipnameresolvecharactersetserverutf8mb4
  第20关:MySQL参数持久化是什么?MySQL的动态参数可以在运行时通过SETGLOBAL命令来更改,但是这种更改只会临时生效,到下次启动时数据库又会从配置文件中读取。在MySQL8。0之前参数文件的动态修改不能写到配置文件,为了改善这一问题MySQL8。0支持了动态修改参数并将其保存到一个新的参数文件文件中mysqldauto。cnf,默认在datadir目录下,在所有的参数之后启动,权限为SYSTEMVARIABLESADMINorSUPER。mysqlsetpersistmaxconnections300;数据字典查询mysqlSELECTFROMperformanceschema。persistedvariables;持久化清除:对于已经持久化了变量,可通过resetpersist命令清除掉,注意,其只是清空mysqldauto。cnf和performanceschema。persistedvariables中的内容MySQL会将该命令的配置保存到数据目录下的mysqldauto。cnf文件中,下次启动时会读取该文件,用其中的配置来覆盖缺省的配置文件。不建议手动修改该文件,因为其内容是json格式的,其有可能导致数据库在启动过程中因解析错误而失败,有些参数不支持持久化的。非持久化:Nonpersistent持久化:PERSIST只读持久化:PERSISTONLY
  第21关:socket是什么,如何用socket登录?Linux系统下本地连接mysql可以采用linux域套接字socket方式,需要一个套接字socket发文件,可以由参数socket控制,一般默认在tmp目录下,也可以通过如下方式查看〔rootjeames〕psefgrepmysqlmysqlshowvariableslike‘socket’;mysqlselectsocket;如果socket录文件丢失,那么会导致不能从本地登录mysql,可以通过重启的方式来重新生成。mysql。sock是mysql的主机和客户机在同一host上的时候,使用unixdomainsocket做为通讯协议的载体,它比tcp快。对mysql。sock来说,其作用是程序与mysqlserver处于同一台机器,发起本地连接时可用。〔rootjeames〕mysqlurootpStmpmysql。sock
  第22关:MySQL表文件结构有哪些?InnoDB中用于存储数据的文件总共有两个部分,一是系统表空间文件,包括ibdata1、ibdata2等文件,其中存储了InnoDB系统信息和元数据,是所有表公用的,另一个是。idb文件,是每张表独有的。。ibd文件就是每一个表独有的表空间,文件存储了当前表的数据,索引数据和插入缓冲等信息innodb包括ibd和frm,当你启用了innodbfilepertable,表被存储在他们自己的表空间里
  第23关:错误日志如何配置?错误日志对mysql的启动、运行、关闭过程进行了记录,MySQLDBA在遇到问题时候,第一时间应该查看这个错误日志文件,该文件不但记录了出错信息,还记录了一些警告信息以及正确信息,这个error日志文件类似于oracle的alert文件。可以通过showvariableslike‘logerror’;命令查看错误日志的路径【配置方法】默认是启动的,一般以err做后缀名,需要在参数文件中配置先找到参数文件logerrorusrlocalmysqldataerror。err
  第24关:慢查询日志如何配置?当查询超过一定时间没有返回结果的时候,才会记录进慢查询日志。慢查询日志可以帮助DBA找出执行效率缓慢的SQ语句,为数据库优化工作提供帮助。慢查询日志默认是不开启的,建议开启慢查询日志。当需要进行采样分析时手工开启。【慢查询日志开启】关于慢查询日志,主要涉及到下面几个参数:slowquerylog:是否开启慢查询日志功能(必填)slowquerylogfile:慢查询日志文件及位置longquerytime:超过设定值,将被视作慢查询,并记录至慢查询日志文件中(必填)也就是说,只有满足以上三个条件,慢查询功能才可能正确开启。参数文件修改如下:修改配置文件my。cnf,在〔mysqld〕下的下方加入〔mysqld〕slowquerylogONslowquerylogfileusrlocalmysqldataslow。loglongquerytime1重启MySQL服务servicemysqldrestart即可
  第25关:redo和binlog有什么区别?所有的数据库都是日志先行,先写日志,再写数据文件,所以才会有redolog的规则。为了保证事务的持久性,mysql的InnoDB采用了WAL技术,WAL的全称是WriteAheadLogging1。RedoLog:RedoLog是InnoDB存储引擎提供的一种物理日志结构,用来描述对底层数据页操作的具体内容,记录物理页的修改,主要用于实现崩溃恢复(crashrecover),并提升磁盘操作效率。2。Binlog:Binlog是MySQLServer本身提供的一种逻辑日志,和具体存储引擎无关,描述的是数据库所执行的SQL语句或数据变更情况,主要用于数据复制和增量恢复。备份和恢复篇
  第26关:MySQL备份方式有哪些?1、根据是否需要数据库离线冷备(coldbackup):需要关mysql服务,读写请求均不允许状态下进行;温备(warmbackup):服务在线,但仅支持读请求,不允许写请求;热备(hotbackup):备份的同时,业务不受影响。2、根据要备份的数据集合的范围完全备份:fullbackup,备份全部字符集。增量备份:incrementalbackup上次完全备份或增量备份以来改变了的数据,不能单独使用,要借助完全备份,备份的频率取决于数据的更新频率。差异备份:differentialbackup上次完全备份以来改变了的数据。建议的恢复策略:完全增量二进制日志完全差异二进制日志???
  第27关:MySQL备份计划如何指定?视库的大小来定,一般来说100G内的库,可以考虑使用mysqldump来做,因为mysqldump更加轻巧灵活,备份时间选在业务低峰期,可以每天进行都进行全量备份(mysqldump备份出来的文件比较小,压缩之后更小)。100G以上的库,可以考虑用xtranbackup来做,备份速度明显要比mysqldump要快。一般是选择一周一个全备,其余每天进行增量备份,备份时间为业务低峰期。
  第28关:备份恢复失败如何处理?首先在恢复之前就应该做足准备工作,避免恢复的时候出错。比如说备份之后的有效性检查、权限检查、空间检查等。如果万一报错,再根据报错的提示来进行相应的调整。
  第29关:数据表损坏修复的方式有哪些?使用myisamchk来修复,具体步骤:1)修复前将mysql服务停止。2)打开命令行方式,然后进入到mysql的bin目录。3)执行myisamchkrecover数据库所在路径。MYI使用repairtable或者OPTIMIZEtable命令来修复,REPAIRTABLEtablename修复表OPTIMIZETABLEtablename优化表REPAIRTABLE用于修复被破坏的表。OPTIMIZETABLE用于回收闲置的数据库空间,当表上的数据行被删除时,所占据的磁盘空间并没有立即被回收,使用了OPTIMIZETABLE命令后这些空间将被回收,并且对磁盘上的数据行进行重排(注意:是磁盘上,而非数据库)高可用篇
  第30关:主从复制的作用及解决的问题是什么?1。主从复制的作用主数据库出现问题,可以切换到从数据库。可以进行数据库层面的读写分离。可以在从数据库上进行日常备份。2。解决的问题数据分布:随意开始或停止复制,并在不同地理位置分布数据备份负载均衡:降低单个服务器的压力高可用和故障切换:帮助应用程序避免单点失败升级测试:可以用更高版本的MySQL作为从库
  第31关:读写分离有哪些方案?读写分离是依赖于主从复制,而主从复制又是为读写分离服务的。方案一使用mysqlproxy代理优点:直接实现读写分离和负载均衡,不用修改代码,master和slave用一样的帐号,mysql官方不建议实际生产中使用缺点:降低性能,不支持事务方案二使用AbstractRoutingDataSourceaopannotation在dao层决定数据源。如果采用了mybatis,可以将读写分离放在ORM层,比如mybatis可以通过mybatisplugin拦截sql语句,所有的insertupdatedelete都访问master库,所有的select都访问salve库,这样对于dao层都是透明。plugin实现时可以通过注解或者分析语句是读写方法来选定主从库。不过这样依然有一个问题,也就是不支持事务,所以我们还需要重写一下DataSourceTransactionManager,将readonly的事务扔进读库,其余的有读有写的扔进写库。方案三使用AbstractRoutingDataSourceaopannotation在service层决定数据源,可以支持事务。缺点:类内部方法通过this。xx()方式相互调用时,aop不会进行拦截,需进行特殊处理。
  第32关:什么是MySQL的GTID?GTID(GlobalTransactionID,全局事务ID)是全局事务标识符,是一个已提交事务的编号,并且是一个全局唯一的编号。GTID是从MySQL5。6版本开始在主从复制方面推出的重量级特性。GTID实际上是由UUIDTID组成的。其中UUID是一个MySQL实例的唯一标识。GTID代表了该实例上已经提交的事务数量,并且随着事务提交单调递增。GTID有如下几点作用:根据GTID可以知道事务最初是在哪个实例上提交的。GTID的存在方便了Replication的Failover。因为不用像传统模式复制那样去找masterlogfile和masterlogpos。基于GTID搭建主从复制更加简单,确保每个事务只会被执行一次。
  第33关:分库分表和表分区的区别?表分区(Partitioning)可以将一张表的数据分别存储为多个文件。如果在写SQL的时候,遵从了分区规则,那么就能把原本需要遍历全表的工作转变为只需要遍历表里某一个或某些分区的工作。这样降低了查询对服务器的压力,提升了查询效率。如果分区表使用得当,那么也可以大规模地提升MySQL的服务能力。但是这种分区方式,一方面,在使用的时候必须遵从分区规则写SQL语句,如果不符合分区规则,那么性能反而会非常低下;另一方面,分区的结果受到MySQL实例,或者说MySQL单实例的数据文件无法分布式存储的限制,不管怎么分区,所有的数据还是都在一个服务器上,没办法通过水平扩展物理服务的方法把压力分摊出去。分表与分区的区别在于:分区一般都是放在单机里的,从逻辑上来讲只有一张表,是MySQL的一种内部实现;而分表则是将一张表分解成多张表,分库分表需要代码实现。分库分表和分区并不冲突,可以结合使用。
  第34关:简述一下MySQL数据库常用的数据库中间件1。Cobar属于阿里B2B事业群,始于2008年,在阿里服役3年多,接管3000个MySQL数据库的schema,集群日处理在线SQL请求50亿次以上。由于Cobar发起人的离职,Cobar停止维护。2。Mycat是开源社区在阿里Cobar基础上进行二次开发,解决了cobar存在的问题,并且加入了许多新的功能在其中。青出于蓝而胜于蓝。3。OneProxy基于MySQL官方的proxy思想利用c进行开发的,OneProxy是一款商业收费的中间件。舍弃了一些功能,专注在性能和稳定性上。4。kingshard由小团队用go语言开发,还需要发展,需要不断完善。5。Vitess是Youtube生产在使用,架构很复杂。不支持MySQL原生协议,使用需要大量改造成本。6。Atlas是360团队基于MySQLproxy改写,功能还需完善,高并发下不稳定。7。MaxScale是mariadb(MySQL原作者维护的一个版本)研发的中间件。8。MySQLRoute是MySQL官方Oracle公司发布的中间件。
  第35关:分库分表标准及类型是什么?1。标准:存储占用100G数据增量每天200w单表条数1亿条2。类型:分库:垂直分库、水平分库分表:垂直分表、水平分表分库是指把一个数据库拆分为多个数据库,一般分为垂直分库和水平分库。分表指的是通过一定规则,将一张表分解成多张不同的表,一般分为垂直分表和水平分表。性能优化篇
  第36关:主键使用自增ID还是UUID?推荐使用自增ID,不要使用UUID。因为在InnoDB存储引擎中,主键索引是作为聚簇索引存在的,也就是说,主键索引的B树叶子节点上存储了主键索引以及全部的数据(按照顺序),如果主键索引是自增ID,那么只需要不断向后排列即可,如果是UUID,由于到来的ID与原来的大小不确定,会造成非常多的数据插入,数据移动,然后导致产生很多的内存碎片,进而造成插入性能的下降。总之,在数据量大一些的情况下,用自增主键性能会好一些。关于主键是聚簇索引,如果没有主键,InnoDB会选择一个唯一键来作为聚簇索引,如果没有唯一键,会生成一个隐式的主键
  第37关:如何优化子查询?1。用关联查询替代2。优化GROUPBY和DISTINCT这两种查询据可以使用索引来优化,是最有效的优化方法3。关联查询中,使用标识列分组的效率更高如果不需要ORDERBY,进行GROUPBY时加ORDERBYNULL,MySQL不会再进行文件排序。4。WITHROLLUP超级聚合,可以挪到应用程序处理
  第38关:对慢查询都怎么优化?1、首先分析语句,看看是否load了额外的数据,可能是查询了多余的行并且抛弃掉了,可能是加载了许多结果中并不需要的列,对语句进行分析以及重写。2、分析语句的执行计划,然后获得其使用索引的情况,之后修改语句或者修改索引,使得语句可以尽可能的命中索引。3、如果对语句的优化已经无法进行,可以考虑表中的数据量是否太大,如果是的话可以进行横向或者纵向的分表
  第39关:执行计划Explain中常用的查询方式都有哪一些?最为常见的扫描方式有:system:系统表,少量数据,往往不需要进行磁盘IO;const:常量连接;eqref:主键索引(primarykey)或者非空唯一索引(uniquenotnull)等值扫描;ref:非主键非唯一索引等值扫描;range:范围扫描;index:索引树扫描;ALL:全表扫描(fulltablescan);上面各类扫描方式由快到慢:systemconsteqrefrefrangeindexALL故障处理篇
  第40关:MySQLroot密码忘记了怎么办?在MySQL中,若密码丢失则无法直接找回,只能通过特殊方式来修改密码。1。Linux环境步骤1:先停止MySQL服务步骤2:启动MySQL服务mysqldsafedefaultsfileetcmy。cnfskipgranttables2。Windows环境若MySQL是8。0且安装在Windows上,则需要加上sharedmemory参数:G:mysql8。0。23winx64binmysqlddatadirG:mysql8。0。23winx64data80323308consoleskipgranttablessharedmemory然后再开一个窗口,执行下面命令cdG:mysql8。0。23winx64bin注意,此时可以以任意一个密码登陆也可以以一个空密码登陆MySQL,登陆之后你就可以修改你的root密码喽
  第41关:MySQL服务器Binlog导致磁盘塞满怎么办?1、定时自动清理Binlog日志mysqlshowvariableslike‘expirelogsdays’;mysql5。7mysqlshowvariableslike‘binlogexpirelogsseconds’mysql8。0mysql8。0处理方式mysql8开始expirelogsdays废弃启用binlogexpirelogsseconds设置binlog自动清除日志时间保存时间以秒为单位;默认259200030天144004小时;864001天;2592003天;mysqlsetglobalbinlogexpirelogsseconds86400;mysql5。7处理方式这个默认是0,也就是logs不过期,可通过设置全局的参数,使他临时生效:mysqlsetglobalexpirelogsdays10;2、手动删除Binlog日志第一步:登陆进入mysql,并使用showbinarylogs;查看日志文件。mysqlshowbinarylogs;第二步:查看正在使用的日志文件:showmasterstatus;mysqlshowmasterstatus;当前正在使用的日志文件是mysqlhost01bin。000010,那么删除日志文件的时候应该排除掉该文件。删除日志文件的命令:purgebinarylogsto‘mysqlhost01bin。000010’;mysqlpurgebinarylogsto‘mysqlhost01bin。000010’;删除除mysqlhost01bin。000010以外的日志文件也可以指定其他文件名,例如mysqlbin。000003。删除后就能释放大部分空间。
  第42关:MySQL无法创建函数怎么办?出现ERROR1418(HY000):ThisfunctionhasnoneofDETERMINISTIC,NOSQL,orREADSSQL报错mysql的设置默认是不允许创建函数1、更改全局配置SETGLOBALlogbintrustfunctioncreators1;2、更改配置文件my。cnf,重启服务生效logbintrustfunctioncreators1;mysqlshowvariableslike‘logbintrustfunctioncreators’;

地球清洁工品学网专稿未经允许不得转载大家好!我是一名清洁工。大家可不要小瞧我,我可是上帝特别安排的地球清洁工,专门清理地球上不干净的东西。我向众仙们借了九九八十一种药水,配成……持续高能!第三批基于高精地图实现自动驾驶功能的城市正式开放!继上次第一、二批基于高精地图实现自动驾驶功能的城市开放后,广新君在后台收到了好多迷弟迷妹的来信,大家都纷纷举手赞成!并表示期待更多城市能开放自动驾驶功能,每天一问:我家这里什么……喜欢玩雪作文370字早上起床,我往窗外一看,哦,下雪了。我终于可以玩雪喽!我高兴地大叫起来。一看窗外,看见树上全是雪,可好看了。可地上的雪不是很多。真想去玩雪,所以,我经过父母的同意,急忙跑……一棵树作文3篇有些作文题目在人称上规定,审题时要明确它在人称上的限制。下面小编为大家带来一棵树作文,仅供参考,希望能够帮到大家。一棵树作文篇一:从前有一片森林,森林里的树木长得非常结实……真正的朋友四年级作文是她,在我陷入困境时,伸出双手拉我一把;是她,在我有问题时,告诉我该怎么做;也是她,在我有大大小小的事时,可以分享的人,她,是我的朋友。我还记得第一次遇见她的那一天,当我……在中国点亮第一盏聚变之灯记荣获第二十六届中国青年五四奖章集体【奋斗者正青春】光明日报记者罗旭能源短缺,是日益严峻的全球性挑战。能否在地球上造出人造太阳,为人类提供清洁、稳定的能源?这一问题,困扰了全世界几代科学家。为了……潍柴青年科技创新团队科技报国,铸造国之重器(奋斗者正青春)突破电控核心技术垄断,让高端液压技术落地中国近年来,潍柴一次次勇攀科技高峰,收获累累硕果。这背后,离不开潍柴青年科技创新团队的努力奋斗。追求极致,只为造出世界上最好的发动……关于奶奶的作文1000字篇一:奶奶星当蜘蛛网无情地查封了我的炉台,当灰烬的余烟叹息着贫困的悲哀。我依然固执地铺平失望的灰烬,用美丽的雪花写下:相信未来mdash;mdash;题记打记……带上一本书去旅行初二作文拖出行李箱,拂去微尘,拉开链子,翻开盖子,看见两本书静静地躺在箱底柔滑的布料之上。我轻轻地捧起它们,凝望着它们依旧崭新的发亮书皮,猛然间发现自已已经好久没有真正看过书了。……上交所受理中润光学和比特技术的科创板IPO申请黄一灵中国证券报中证网中证网讯(记者黄一灵)5月20日晚,上交所受理嘉兴中润光学科技股份有限公司、深圳市中航比特通讯技术股份有限公司的科创板IPO申请,两家公司拟募集资金……国盾量子携手中国电信推新品量子安全技术推广加速中证网讯(王珞)中国证券报记者近日从国盾量子(688027)处获悉,中国电信(601728)近日发布的新品,基于量子信息技术的VoLTE加密纯国产通信产品天翼量子高清密话,由公……收藏感动作文四篇1收藏感动感动是温暖的白开水;感动是甜蜜人心的糖果;感动是快乐人心的音乐。感动可以收藏吗?我告诉你感动可以收藏。初中的时候,我们学校0班搬早餐总是最晚,每天都吃冷的……
你准备好迎接科幻般的6G时代了吗据西班牙《国家报》网站5月10日报道,科幻小说描绘的生活开始成为现实。每个家庭都有几十台同时连接网络的设备。云上沟通、先进的机器人、即时的交通、物流或工业调度、远程医疗、新的教……以我的自由天地为题的作文在生活中,每个人都有自己的一块小天地,那是只属于自己的快乐的自由的天地。现在我就给大家介绍一下我的小天地吧。每天回到家,打开那间白色的门。那个房间便是我的小天地。在房间里……描写传统节日清明节的作文传统节日清明节作文篇一清明,是我国二十四个节气之一。按阳历来说,它是在每年的4月4日至6日之间。古人很重视这个节气。作为节气,清明时期正是我国大部地区,万木凋零的寒冬已经……P2P网贷风险专项整治工作开展,负债人该何去何从P2P网贷风险持续出清!自去年11月中旬全国实际运营的P2P网贷机构完全归零,到去年末P2P存量业务尚未清零的停业网贷机构数量由1466家压降至1169家,未兑付余额由8207……2010年高考作文素材应用之十大技法之一材多用高考作文素材应用技法之一材多用写议论文,同学们大多苦于无材料可用。其实,大家头脑中已经储存了不少材料,但为什么还会为材料匮乏而发愁呢?这里有一个很重要的问题,就是有些同学……描写金桔树的作文桔子树是芸香科柑橘属下的植物,常绿小乔木,原产中国,广布于长江以南各省。高约3米。小枝较细弱,无毛,通常有刺。春季开花,1012月果熟。描写金桔树的作文(一)我家种有金桔……实用我的心愿小学作文400字合集5篇在平凡的学习、工作、生活中,大家或多或少都会接触过作文吧,借助作文人们可以实现文化交流的目的。相信很多朋友都对写作文感到非常苦恼吧,以下是小编精心整理的我的心愿小学作文400字……手机数据网速很慢的时候,开一下飞行模式再关闭,上网速度会比之本人专注通信相关问题,解答通信疑惑,关注了解更多内容!!!手机数据网速很慢的时候,开一下飞行模式再关闭,上网速度会比之前快很多,这是因为手机可能占用了其它网速快的基站。……其他名言天才名言泥土和天才比,当然是不足齿数的,然而不是坚苦卓绝者,也怕不容易做;不过事在人为,比空等天赋的天才有把握。这一点,是泥土的伟大的地方,也是反有大希望的地方。鲁迅天才免不了有……烧钱模式生变互联网巨头宣布盈亏时间表互联网行业正发生深刻变化。日前,在快手业绩电话会上,公司首席财务官金秉表示,对今年实现季度国内业务调整后净利润转正很有信心。中国证券报记者注意到,近期,包括爱奇艺、哔哩哔哩(简……关于仰望天空的作文在日常学习、工作和生活中,大家总免不了要接触或使用作文吧,作文是一种言语活动,具有高度的综合性和创造性。作文的注意事项有许多,你确定会写吗?以下是小编精心整理的关于仰望天空的作……改写秋思三年级作文又是一个凄凉的秋季,秋风吹起了地上的落叶,刺骨的冷风掠过我的脸颊,洛阳城虽繁华,秋风却是如此寒冷,不禁让我忆起家乡那带来丰收和欢乐的秋风。走进了屋子,坐在了老旧的木凳上,……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网