MySQL面试题 40道

合集下载

mysql数据库面试题

mysql数据库面试题

软件⼯程师面试题-MySQL-V1.01目录前⾔5 MySQL面试题61.MySQL中有哪⼏种锁?62.MySQL中有哪些不同的表格?63.简述在MySQL数据库中MyISAM和InnoDB的区别64.MySQL中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别?75.CHAR和VARCHAR的区别?76.主键和候选键有什么区别?87.myisamchk是用来做什么的?88.如果一个表有一列定义为TIMESTAMP,将发⽣什么?89.你怎么看到为表格定义的所有索引?810.LIKE声明中的%和_是什么意思?911.列对比运算符是什么?912.BLOB和TEXT有什么区别?913.MySQL_fetch_array和MySQL_fetch_object的区别是什么?914.MyISAM表格将在哪里存储,并且还提供其存储格式?915.MySQL如何优化DISTINCT?1016.如何显示前50⾏?1017.可以使用多少列创建索引?1018.NOW()和CURRENT_DATE()有什么区别?1019.什么是非标准字符串类型?1020.什么是通用SQL函数?1121.MySQL支持事务吗?1122.MySQL里记录货币用什么字段类型好1123.MySQL有关权限的表都有哪⼏个?1224.列的字符串类型可以是什么?1225.MySQL数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?1226.锁的优化策略1327.索引的底层实现原理和优化1328.什么情况下设置了索引但⽆法使用1329.实践中如何优化MySQL1330.优化数据库的⽅法1431.简单描述MySQL中,索引,主键,唯一索引,联合索引的区别,对数据库的性能有什么影响(从读写两⽅面)1432.数据库中的事务是什么?1533.SQL注⼊漏洞产⽣的原因?如何防⽌?1634.为表中得字段选择合适得数据类型1635.存储日期时间1636.对于关系型数据库⽽⾔,索引是相当重要的概念,请回答有关索引的⼏个问题:1737.解释MySQL外连接、内连接与自连接的区别1838.Myql中的事务回滚机制概述1839.SQL语⾔包括哪⼏部分?每部分都有哪些操作关键字?1940.完整性约束包括哪些?1941.什么是锁?2042.什么叫视图?游标是什么?2043.什么是存储过程?用什么来调用?2044.如何通俗地理解三个范式?2145.什么是基本表?什么是视图?2146.试述视图的优点?2147.NULL是什么意思2248.主键、外键和索引的区别?2249.你可以用什么来确保表格里的字段只接受特定范围里的值?2250.说说对SQL语句优化有哪些⽅法?(选择⼏条)224软件⼯程师面试题-MYSQL V1.0MySQL面试题1.MySQL中有哪⼏种锁?1、表级锁:开销小,加锁快;不会出现死锁;锁定粒度⼤,发⽣锁冲突的概率最⾼,并发度最低。

mysql必读面试题

mysql必读面试题

mysql必读面试题1、mysql有哪几种log重做日志(redolog)、回滚日志(undolog)、二进制日志(binlog)、错误日志(errorlog)、慢查询日志(slowquerylog)、一般查询日志(generallog),中继日志(relaylog)错误日志:记录出错信息,也记录一些警告信息或者正确的信息。

查询日志:记录所有对数据库请求的信息,不论这些请求是否得到了正确的执行。

慢查询日志:设置一个阈值,将运行时间超过该值的所有SQL 语句都记录到慢查询的日志文件中。

二进制日志:记录对数据库执行更改的所有操作。

中继日志:中继日志也是二进制日志,用来给slave库恢复事务日志:重做日志redo和回滚日志undo2、MySQL的复制原理以及流程主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中。

从:io线程——在使用startslave之后,负责从master上拉取binlog内容,放进自己的relaylog中。

从:sql执行线程——执行relaylog中的语句。

3、事物的4种隔离级别隔离强度逐渐增强,性能逐渐变差。

读未提交(RU)READ UNCOMMITTED读已提交(RC)READ COMMITT可重复读(RR)REPEATABLE READ串行化SERIALIZABLE事务具有原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)四个特性,简称ACID,缺一不可。

4、MySQL数据库几个基本的索引类型普通索引、唯一索引、主键索引、全文索引5、drop、delete与truncate的区别SQL中的drop、delete、truncate都表示删除,但是三者有一些差别1、delete和truncate只删除表的数据不删除表的结构2、速度,一般来说:drop>truncate>delete3、delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;4、如果有相应的trigger,执行的时候将被触发、truncate,drop是ddl,操作立即生效,原数据不放到rollback segment中,不能回滚、操作不触发trigger、6、数据库的乐观锁和悲观锁是什么?悲观锁的特点是先获取锁,再进行业务操作,即“悲观”的认为获取锁是非常有可能失败的,因此要先确保获取锁成功再进行业务操作。

MySQL经典面试题

MySQL经典面试题

「MySQL」经典面试题「MySQL」经典面试题经典面试题目1、MySQL的复制原理以及流程基本原理流程,3个线程以及之间的关联;2、MySQL中myisam与innodb的区别,至少5点(1)、问5点不同;(2)、innodb引擎的4大特性(3)、2者selectcount(*)哪个更快,为什么3、MySQL中varchar与char的区别以及var50)中的50代表的涵义(1)、varchar与char的区别(2)、var50)中50的涵义(3)、int(20)中20的涵义(4)、mysql为什么这么设计4、问了innodb的事务与日志的实现方式(1)、有多少种日志;(2)、事物的4种隔离级别(3)、事务是如何通过日志来实现的,说得越深入越好。

5、问了MySQL binlog的几种日志录入格式以及区别(1)、binlog的日志格式的种类和分别(2)、适用场景;(3)、结合第一个问题,每一种日志格式在复制中的优劣。

6、问了下MySQL数据库cpu飙升到500%的话他怎么处理?(1)、没有经验的,可以不问;(2)、有经验的,问他们的处理思路。

7、sql优化(1)、explain出来的各种item的意义;(2)、profile的意义以及使用场景;8、备份计划,mysqldump以及xtranbackup的实现原理(1)、备份计划;(2)、备份恢复时间;(3)、xtrabackup实现原理9、mysqldump中备份出来的sql,如果我想sql文件中,一行只有一个....value的话,怎么办?如果备份需要带上master的复制点信息怎么办?10、500台db,在最快时间之内重启11、innodb的读写参数优化(1)、读取参数(2)、写入参数;(3)、与IO相关的参数;(4)、缓存参数以及缓存的适用场景。

12、你是如何监控你们的`数据库的?你们的慢日志都是怎么查询的?13、你是否做过主从一致性校验,如果有,怎么做的,如果没有,你打算怎么做?14、你们数据库是否支持emoji表情,如果不支持,如何操作?15、你是如何维护数据库的数据字典的?16、你们是否有开发规范,如果有,如何执行的17、表中有大字段X(例如:text类型),且字段X不会经常更新,以读为为主,请问(1)、您是选择拆成子表,还是继续放一起;(2)、写出您这样选择的理由。

mysql精选60道面试题

mysql精选60道面试题

mysql精选60道面试题当涉及到 MySQL 数据库的面试题,通常会涉及到数据库的基本概念、查询语句、性能优化、索引、事务处理等方面。

以下是一些可能会出现的面试题:1. 什么是数据库?2. 什么是 MySQL?它的特点是什么?3. 什么是 SQL?它的作用是什么?4. 请解释一下数据库的范式是什么?5. 什么是表?列?行?6. 如何创建一个数据库?7. 如何创建一个表?8. 什么是主键?外键?9. 如何插入一条记录?10. 如何更新一条记录?11. 如何删除一条记录?12. 如何查询数据库中的数据?13. 什么是索引?如何创建索引?14. 什么是视图?它有什么作用?15. 什么是存储过程?它有什么作用?16. 什么是触发器?它有什么作用?17. 什么是事务?如何使用事务?18. 什么是连接?有哪些类型的连接?19. 什么是子查询?如何使用子查询?20. 什么是联合查询?如何使用联合查询?21. 如何优化 SQL 查询语句的性能?22. 什么是数据库范围锁定?23. 什么是事务隔离级别?有哪些级别?24. 什么是数据库复制?如何配置数据库复制?25. 什么是数据库分区?如何进行数据库分区?26. 什么是数据库备份和恢复?如何进行数据库备份和恢复?27. 什么是数据库优化器?它的作用是什么?28. 什么是数据库锁?有哪些类型的锁?29. 什么是数据库索引优化?如何进行索引优化?30. 什么是数据库缓存?如何进行数据库缓存优化?以上是一些可能涉及到的 MySQL 数据库面试题,希望能够帮助到您。

如果有其他问题,欢迎继续提问。

mysql高级面试题及答案

mysql高级面试题及答案

mysql高级面试题及答案mysql高级面试题及答案(一)1.以下聚合函数求数据总和的是( )A.MAXB.SUMC.COUNTD.AVG答案:B2.可以用( )来声明游标A.CREATE CURSORB.ALTER CURSORC.SET CURSORD.DECLARE CURSOR答案:D3.SELECT语句的完整语法较复杂,但至少包括的部分是( )A.仅SELECTB.SELECT,FROMC.SELECT,GROUPD.SELECT,INTO答案:B4.SQL语句中的条件用以下哪一项来表达( )A.THENB.WHILEC.WHERED.IF答案:C5.使用CREATE TABLE语句的( )子句,在创建基本表时可以启用全文本搜索A.FULLTEXTB.ENGINEC.FROMD.WHRER答案:A6.以下能够删除一列的是( )A.alter table emp remove addcolumnB.alter table emp drop column addcolumnC.alter table emp delete column addcolumnD.alter table emp delete addcolumn答案:B7.若要撤销数据库中已经存在的表S,可用()。

A.DELETE TABLE SB.DELETE SC.DROP SD.DROP TABLE S答案:D8.查找表结构用以下哪一项( )A.FINDB.SELETEC.ALTERD.DESC答案:D9.要得到最后一句SELECT查询到的总行数,可以使用的函数是( )A.FOUND_ROWSST_ROWSC.ROW_COUNTST_INSERT_ID答案:A10.在视图上不能完成的操作是( )A.查询B.在视图上定义新的视图C.更新视图D.在视图上定义新的表答案:D11.UNIQUE惟一索引的作用是( )A.保证各行在该索引上的值都不得重复B.保证各行在该索引上的值不得为NULLC.保证参加惟一索引的各列,不得再参加其他的索引D.保证惟一索引不能被删除答案:Amysql高级面试题及答案(二)1、mysql如何创建一个库,添加一个表,在表中插入数据。

MYSQL_面试专项练习题_带答案_100题_2021_第2套

MYSQL_面试专项练习题_带答案_100题_2021_第2套

MYSQL_面试专项练习题_带答案_100题_2021_第2套[单选题]1.DECIMAL 是( )数据类型A)可变精度浮点值B)整数值C)双精度浮点值D)单精度浮点值答案:A解析:2.下面关于在子查询中使用运算符描述不正确的是()。

A)使用IN运算符用于查找字段值属于某一组值的行B)使用Exists运算符用于测试子查询是否返回行,如果返回其值就为真C)使用ALL运算符用于测试子查询结果集的所有行是否满足指定的条件D)使用Any运算符用于测试子查询结果集中的一行或多行不满足指定的条件答案:D解析:3.按照姓名升序序排列( )A)ORDER BY NAME ASCB)ORDER BY ASC NAMEC)ORDER BY NAME DESCD)ORDER BY DESC NAME答案:A解析:4.下列四项中,不属于数据库特点的是()。

A)数据共享B)数据完整性C)数据冗余很高D)数据独立性高答案:C解析:5.以下语句错误的是( )A)select sal+1 from emp;B)select sal*10,sal*deptno from emp;C)不能使用运算符号D)select sal*10,deptno*10 from emp;答案:C解析:6.用户使用SQL 语句备份时如需指定包裹文件中字符值应用下列哪个语句:()。

A)TERMINATED BYB)ENCLOSED BYC)ESCAPED BYD)LINES TERMINATED BY答案:B解析:7.以下有关MySQL事件的叙述中,错误的是A)事件是由操作系统调用的过程B)事件能够按设定的时间自动执行C)在事件中可以调用存储过程D)在事件中可以对数据表进行数据更新操作答案:A解析:【解析】事件是按计划运行工作, A错。

事件是按建立事件时设定的时间来执行,事件可调用存储过程及对表进行更新, B、C、D对8.按照姓名升序序排列( )A)ORDER BY NAME ASCB)ORDER BY ASC NAMEC)ORDER BY NAME DESCD)ORDER BY DESC NAME答案:A解析:9.修改数据库表结构用以下哪一项( )A)UPDATEB)CREATEC)UPDATEDD)ALTER答案:D解析:10.用SQL 的ALTER TABLE 语句修改基本表时,删除其中某个列的约束条件应使用的子句是()A)ADDB)DELETEC)MODIFYD)DROP答案:D解析:11.下列()命令可以回收用户权限。

数据库常问面试题

数据库常问面试题

数据库常问面试题
1.用一句话介绍什么是MySQL?
2.对MySQL数据库去重的关键字是什么?
3.MySQL多表连接有哪些方式?怎么用的?这些连接都有什么区别?
4.MySQL数据库和Redis的区别?
5.说一下索引的优势和劣势?
6.什么是死锁?怎么解决?
7.什么是视图?为什么要使用视图?
8.视图有哪些特点?使用场景有哪些?
9.讲一下视图的优缺点?
10.MySQL的约束有哪些?
11.UNION和UNION ALL的区别?
12.关心过业务系统里面的sql耗时吗?对慢查询都怎么优化过?
13.主键使用自增ID还是UUID,为什么?
14.MySQL数据库cpu飙升的话,要怎么处理呢?
15.什么是存储过程?有哪些优缺点?
16.日常工作中,你是怎么优化sql的?
17.什么情况下应不建或少建索引?
18.了解什么是表分区吗?表分区的好处有哪些?。

mysql 基础面试题

mysql 基础面试题

mysql 基础面试题MySQL 基础面试题数据库基础•什么是数据库?•数据库的分类有哪些?•什么是关系型数据库和非关系型数据库?•请列举一些常见的关系型数据库和非关系型数据库。

•什么是表?什么是字段?什么是记录?•什么是主键?什么是外键?MySQL 数据库管理•如何创建一个数据库?•如何删除一个数据库?•如何查看当前所有的数据库?•如何查看数据库中的所有表?•如何创建一个表?•如何删除一个表?•如何修改一个表的结构?•如何查看表的结构?MySQL 数据类型•MySQL 支持的常见数据类型有哪些?•什么是整型数据类型?请列举一些常见的整型数据类型。

•什么是浮点型数据类型?请列举一些常见的浮点型数据类型。

•什么是日期和时间类型?请列举一些常见的日期和时间类型。

•什么是字符串类型?请列举一些常见的字符串类型。

•什么是枚举类型和集合类型?MySQL 数据操作•如何插入一条数据?•如何更新一条数据?•如何删除一条数据?•如何查询数据?•如何排序查询结果?•如何筛选查询结果?•如何统计查询结果的数量?•如何分页查询数据?索引和优化•什么是索引?•为什么要使用索引?•如何创建一个索引?•如何删除一个索引?•什么是主键索引?什么是唯一索引?•如何优化查询语句的性能?•什么是SQL优化?如何进行SQL优化?•什么是事务?如何控制和管理事务?数据备份与恢复•如何备份和恢复数据库?•如何定期自动备份数据库?•如何迁移数据库?•如何进行主从复制?•如何进行数据迁移和同步?以上是关于 MySQL 基础的一些面试题,希望能帮助到你在面试中顺利展示自己的知识和技能。

祝你面试顺利!。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、MySQL 中有哪几种锁?1、表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。

2、行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。

3、页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。

2、MySQL 中有哪些不同的表格?共有 5 种类型的表格: 1、MyISAM2、Heap 3、Merge 4、INNODB 5、MISAM3、简述在MySQL 数据库中 MyISAM 和InnoDB 的区别MyISAM:不支持事务,但是每次查询都是原子的;支持表级锁,即每次操作是对整个表加锁;存储表的总行数;一个 MYISAM 表有三个文件:索引文件、表结构文件、数据文件;采用菲聚集索引,索引文件的数据域存储指向数据文件的指针。

辅索引与主索引基本一致,但是辅索引不用保证唯一性。

InnoDb:支持 ACID 的事务,支持事务的四种隔离级别;支持行级锁及外键约束:因此可以支持写并发;不存储总行数:一个 InnoDb 引擎存储在一个文件空间(共享表空间,表大小不受操作系统控制,一个表可能分布在多个文件里),也有可能为多个(设置为独立表空,表大小受操作系统文件大小限制,一般为 2G),受操作系统文件大小的限制;主键索引采用聚集索引(索引的数据域存储数据文件本身),辅索引的数据域存储主键的值;因此从辅索引查找数据,需要先通过辅索引找到主键值,再访问辅索引;最好使用自增主键,防止插入数据时,为维持 B+树结构,文件的大调整。

4、MySQL 中InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?SQL 标准定义的四个隔离级别为:1、read uncommited :读到未提交数据2、read committed:脏读,不可重复读3、repeatable read:可重读4、serializable :串行事物5、CHAR 和VARCHAR 的区别?1、CHAR 和 VARCHAR 类型在存储和检索方面有所不同2、CHAR 列长度固定为创建表时声明的长度,长度值范围是 1 到 255 当 CHAR 值被存储时,它们被用空格填充到特定长度,检索 CHAR 值时需删除尾随空格。

6、主键和候选键有什么区别?表格的每一行都由主键唯一标识,一个表只有一个主键。

主键也是候选键。

按照惯例,候选键可以被指定为主键,并且可以用于任何外键引用。

7、myisamchk 是用来做什么的?它用来压缩 MyISAM 表,这减少了磁盘或内存使用。

MyISAM Static 和 MyISAM Dynamic 有什么区别?在 MyISAM Static 上的所有字段有固定宽度。

动态 MyISAM 表将具有像 TEXT, BLOB 等字段,以适应不同长度的数据类型。

MyISAM Static 在受损情况下更容易恢复。

8、如果一个表有一列定义为TIMESTAMP,将发生什么?每当行被更改时,时间戳字段将获取当前时间戳。

列设置为 AUTO INCREMENT 时,如果在表中达到最大值,会发生什么情况?它会停止递增,任何进一步的插入都将产生错误,因为密钥已被使用。

怎样才能找出最后一次插入时分配了哪个自动增量?LAST_INSERT_ID 将返回由 Auto_increment 分配的最后一个值,并且不需要指定表名称。

9、你怎么看到为表格定义的所有索引?索引是通过以下方式为表格定义的:SHOW INDEX FROM ;10、LIKE 声明中的%和是什么意思?%对应于 0 个或更多字符,只是 LIKE 语句中的一个字符。

如何在 Unix 和 MySQL 时间戳之间进行转换?UNIX_TIMESTAMP 是从 MySQL 时间戳转换为 Unix 时间戳的命令FROM_UNIXTIME 是从 Unix 时间戳转换为 MySQL 时间戳的命令11、列对比运算符是什么?在 SELECT 语句的列比较中使用=,<>,<=,<,> =,>,<<,>>,<=>,AND, OR 或 LIKE 运算符。

12、BLOB 和TEXT 有什么区别?BLOB 是一个二进制对象,可以容纳可变数量的数据。

TEXT 是一个不区分大小写的 BLOB。

BLOB 和 TEXT 类型之间的唯一区别在于对 BLOB 值进行排序和比较时区分大小写,对 TEXT 值不区分大小写。

13、MySQL_fetch_array 和MySQL_fetch_object 的区别是什么?以下是 MySQL_fetch_array 和 MySQL_fetch_object 的区别:MySQL_fetch_array() – 将结果行作为关联数组或来自数据库的常规数组返回。

MySQL_fetch_object – 从数据库返回结果行作为对象。

14、MyISAM 表格将在哪里存储,并且还提供其存储格式?每个 MyISAM 表格以三种格式存储在磁盘上:·“.frm” 文件存储表定义·数据文件具有“.MYD”( MYData)扩展名索引文件具有“.MYI”( MYIndex)扩展名15、MySQL 如何优化DISTINCT?DISTINCT 在所有列上转换为 GROUP BY,并与 ORDER BY 子句结合使用。

SELECT DISTINCT t1.a FROM t1,t2 where t1.a=t2.a;16、如何显示前 50 行?在 MySQL 中,使用以下代码查询显示前 50 行: SELECT*FROM TABLE LIMIT 0,50;17、可以使用多少列创建索引?任何标准表最多可以创建 16 个索引列。

18、NOW()和 CURRENT_DATE()有什么区别?NOW()命令用于显示当前年份,月份,日期,小时,分钟和秒。

CURRENT_DATE()仅显示当前年份,月份和日期。

19、什么是非标准字符串类型?1、TINYTEXT2、TEXT3、MEDIUMTEXT4、LONGTEXT20、什么是通用 SQL 函数?1、CONCAT(A, B) – 连接两个字符串值以创建单个字符串输出。

通常用于将两个或多个字段合并为一个字段。

2、FORMAT(X, D)- 格式化数字 X 到 D 有效数字。

3、CURRDATE(), CURRTIME()- 返回当前日期或时间。

4、NOW() – 将当前日期和时间作为一个值返回。

5、MONTH(), DAY(), YEAR(), WEEK(), WEEKDAY() – 从日期值中提取给定数据。

6、HOUR(), MINUTE(), SECOND() – 从时间值中提取给定数据。

7、DATEDIFF( A, B) – 确定两个日期之间的差异,通常用于计算年龄8、SUBTIMES( A, B) – 确定两次之间的差异。

9、FROMDAYS( INT) – 将整数天数转换为日期值。

21、MySQL 支持事务吗?在缺省模式下,MySQL 是 autocommit 模式的,所有的数据库更新操作都会即时提交,所以在缺省情况下, MySQL 是不支持事务的。

但是如果你的 MySQL 表类型是使用 InnoDB Tables 或 BDB tables 的话,你的MySQL 就可以使用事务处理,使用 SETAUTOCOMMIT=0 就可以使 MySQL 允许在非 autocommit 模式,在非autocommit 模式下,你必须使用 COMMIT 来提交你的更改,或者用 ROLLBACK 来回滚你的更改。

22、MySQL 里记录货币用什么字段类型好NUMERIC 和 DECIMAL 类型被 MySQL 实现为同样的类型,这在 SQL92 标准允许。

他们被用于保存值,该值的准确精度是极其重要的值,例如与金钱有关的数据。

当声明一个类是这些类型之一时,精度和规模的能被(并且通常是)指定。

例如:salary DECIMAL(9,2)在这个例子中, 9(precision)代表将被用于存储值的总的小数位数,而 2(scale)代表将被用于存储小数点后的位数。

因此,在这种情况下,能被存储在 salary 列中的值的范围是从-9999999.99 到9999999.99。

23、MySQL 有关权限的表都有哪几个?MySQL 服务器通过权限表来控制用户对数据库的访问,权限表存放在 MySQL 数据库里,由MySQL_install_db 脚本初始化。

这些权限表分别 user,db,table_priv, columns_priv 和 host 。

24、列的字符串类型可以是什么?字符串类型是: 1、SET2、BLOB3、ENUM4、CHAR5、TEXT25、MySQL 数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?1、设计良好的数据库结构,允许部分数据冗余,尽量避免 join 查询,提高效率。

2、选择合适的表字段数据类型和存储引擎,适当的添加索引。

3、MySQL 库主从读写分离。

4、找规律分表,减少单表中的数据量提高查询速度。

5、添加缓存机制,比如 memcached, apc 等。

6、不经常改动的页面,生成静态页面。

7、书写高效率的 SQL。

比如 SELECT * FROM TABEL 改为 SELECT field_1, field_2, field_3 FROM TABLE.26、锁的优化策略1、读写分离2、分段加锁3、减少锁持有的时间1. 多个线程尽量以相同的顺序去获取资源不能将锁的粒度过于细化,不然可能会出现线程的加锁和释放次数过多,反而效率不如一次加一把大锁。

27、索引的底层实现原理和优化B+树,经过优化的 B+树主要是在所有的叶子结点中增加了指向下一个叶子节点的指针,因此 InnoDB 建议为大部分表使用默认自增的主键作为主索引。

28、什么情况下设置了索引但无法使用1、以“%” 开头的 LIKE 语句,模糊匹配2、OR 语句前后没有同时使用索引3、数据类型出现隐式转化(如 varchar 不加单引号的话可能会自动转换为 int 型)29、实践中如何优化 MySQL最好是按照以下顺序优化:1、SQL 语句及索引的优化2、数据库表结构的优化3、系统配置的优化4、硬件的优化30、优化数据库的方法1、选取最适用的字段属性,尽可能减少定义字段宽度,尽量把字段设置 NOTNULL,例如’ 省份’、’ 性别’ 最好适用 ENUM2、使用连接(JOIN)来代替子查询3、适用联合(UNION)来代替手动创建的临时表4、事务处理5、锁定表、优化事务处理6、适用外键,优化锁定表7、建立索引8、优化查询语句31、简单描述 MySQL 中,索引,主键,唯一索引,联合索引的区别,对数据库的性能有什么影响(从读写两方面)索引是一种特殊的文件(InnoDB 数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。

相关文档
最新文档