首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

DBA-MySql面试问题及答案-上

2.如何查看某个操作语法? 3.MySql存储引擎有哪些? 4.常用2种存储引擎? 6.可以针对表设置引擎吗?如何设置? 6.选择合适存储引擎?...选择原则: 根据选定存储引擎,确定如何选择合适数据类型下面的选择方法按存储引擎分类 : MyISAM 数据存储引擎和数据列 MyISAM数据表,最好使用固定长度数据列代替可变长度数据列。...对于惟一列,索引效果最好,而具有多个 重复列,其索引效果最差。 使用索引。如果对串列进行索引,应该指定一个前缀长度,只要有可能就应该这做样。...那么可以看出他们有以下不同: hash索引进行等值查询更快(一般情况下),但是却无法进行范围查询....因为在hash索引中经过hash函数建立索引之后,索引顺序原顺序无法保持一致,不能支持范围查询.而B+树所有节点皆遵循(左节点小于父节点,右节点大于父节点,叉树也类似),天然支持范围. hash

24520

数据库结构优化、高可用架构设计、数据库索引

1.3 数据库范式设计反范式化 传送门:数据库逻辑设计之三大范式通俗理解,一看就懂,书上说太晦涩 相关传送门:MySQL中字段类型合理选择字段类型;int(11)最大长度是多少?...:"普通索引"类似,不同就是:索引必须唯一,但允许有空。...3.2.2 索引不是越多越好 1、索引会增加写操作成本; 2、太多索引会增加查询优化选择时间。...语法: ALTER TABLE table\_name ADD KEY(column\_name(prefix\_length)) 如何选择索引顺序: 1、经常会被使用列优先(选择性差列不适合...,如性别,查询优化可能会认为全表扫描性能更好); 2、选择性高列优先; 3、宽度小列优先(一页中存储索引越多,降低I/O,查找越快); 3.3.3 组合/联合索引策略 如果索引列,要遵守最左前缀法则

55430
您找到你想要的搜索结果了吗?
是的
没有找到

告诉你 38 个 MySQL 数据库小技巧!

实践操作 数据库系统具有极强操作性,需要动手上机操作。在实际操作过程中才能发现问题, 并思考解决问题方法和思路,只有这样才能提高实战操作能力。 02 如何选择服务类型?...03 如何选择存储引擎 不同存储引擎都有各自特点,以适应不同需求,如下表所示。为了做出选择: 首先需 要考虑每一个存储引擎提供了哪些不同功能。...CHAR VARCHAR 之间特点选择 CHAR 和 VARCHAR 区别: CHAR 是固定长度字符,VARCHAR 是可变长度字符;CHAR 会自动删除插入数据尾部空格,VARCHAR...建议在对表进行更新和删除操作之前,使用 SELEC T语句确认需要删除记录,以免造成无法挽回结果。 21 索引对数据库性能如此重要,应该如何使用它? 为数据库选择正确索引是一项复杂任务。...22 尽量使用索引 对字符串类型字段进行索引,如果可能应该指定一个前缀长度

2.6K40

告诉你38个MySQL数据库小技巧!

实践操作 数据库系统具有极强操作性,需要动手上机操作。在实际操作过程中才能发现问题, 并思考解决问题方法和思路,只有这样才能提高实战操作能力。 2、如何选择服务类型?...3、如何选择存储引擎 不同存储引擎都有各自特点,以适应不同需求,如下表所示。为了做出选择: 首先需 要考虑每一个存储引擎提供了哪些不同功能。...CHARVARCHAR之间特点选择 CHAR和VARCHAR区别: CHAR是固定长度字符,VARCHAR是可变长度字符;CHAR会自动删除插入数据尾部 空格,VARCHAR不会删除尾部空格。...建议在对表进行更新和删除操作之前,使用SELECT语句确认需要删除记录,以免造 成无法挽回结果。 21、索引对数据库性能如此重要,应该如何使用它? 为数据库选择正确索引是一项复杂任务。...可以添加、修改和删 除索引而不影响数据库架构或应用程序设计。因此,应尝试多个不同索引从而建立最优索引。 22、尽量使用索引。 对字符串类型字段进行索引,如果可能应该指定一个前缀长度

2.6K10

MySQL数据库实用技巧

实践操作   数据库系统具有极强操作性,需要动手上机操作。在实际操作过程中才能发现问题, 并思考解决问题方法和思路,只有这样才能提高实战操作能力。 2、如何选择服务类型?...3、如何选择存储引擎 不同存储引擎都有各自特点,以适应不同需求,如下表所示。为了做出选择:   ● 首先需要考虑每一个存储引擎提供了哪些不同功能。...CHARVARCHAR之间特点选择 CHAR和VARCHAR区别:   CHAR是固定长度字符,VARCHAR是可变长度字符;CHAR会自动删除插入数据尾部 空格,VARCHAR不会删除尾部空格...建议在对表进行更新和删除操作之前,使用SELECT语句确认需要删除记录,以免造 成无法挽回结果。 21、索引对数据库性能如此重要,应该如何使用它?   为数据库选择正确索引是一项复杂任务。...可以添加、修改和删 除索引而不影响数据库架构或应用程序设计。因此,应尝试多个不同索引从而建立最优索引。 22、尽量使用索引。 对字符串类型字段进行索引,如果可能应该指定一个前缀长度

2.5K10

37 个 MySQL 数据库小技巧,不看别后悔!

实践操作 数据库系统具有极强操作性,需要动手上机操作。在实际操作过程中才能发现问题, 并思考解决问题方法和思路,只有这样才能提高实战操作能力。 2、如何选择服务类型?...3、如何选择存储引擎 不同存储引擎都有各自特点,以适应不同需求,如下表所示。为了做出选择: 首先需 要考虑每一个存储引擎提供了哪些不同功能。...CHARVARCHAR之间特点选择 CHAR和VARCHAR区别: CHAR是固定长度字符,VARCHAR是可变长度字符;CHAR会自动删除插入数据尾部 空格,VARCHAR不会删除尾部空格。...21、索引对数据库性能如此重要,应该如何使用它? 为数据库选择正确索引是一项复杂任务。如果索引列较少,则需要磁盘空间和维护开销 都较少。...可以添加、修改和删 除索引而不影响数据库架构或应用程序设计。因此,应尝试多个不同索引从而建立最优索引。 22、尽量使用索引。 对字符串类型字段进行索引,如果可能应该指定一个前缀长度

1.8K20

mysql 知识总结

不同字符编码,一个字符占用字节数不同。一行数据最大长度64K,减去其他字段占用才能计算n最大。一般建议n 不要超过 5K,如果大于可使用 text 并且独立表。text,大型文本不需要指定长度限制。...执行查询语句过程建立连接,验证身份,给于权限。查询缓存,有则返回,mysql 8.0版本后移除,因为有更新或条件不同则缓存失效作用不大。分析进行sql语法分析。...唯一索引索引必须唯一,但允许有空。普通索引索引列允许重复。联合索引:对进行索引使用最左匹配原则。全文索引:一般不用,不是 mysql 专长。...优化表结构,避免可空类型,合理设置数据类型和长度使用分区表。...复杂容易出现不一致,不建议使用主一从用于源复制,即汇总多个不同数据到一个库中。垂直或水平分库之后,可能使用此模式。主从复制实现原理主库开启 binlog。

12910

【大长文】7大领域,50道经典题目,助你彻底搞定MySQL面试!

使用哪一种引擎需要灵活选择,合适存储引擎,能够提高整个数据库性能。不同存储引擎都有各自特点,以适应不同需求,如下表所示: ? 3.InnoDB和MyISAM区别有哪些?...mixed, 一种折中方案,普通操作使用statement记录,当无法使用statement时候使用row。 9.如何在Unix和MySQL时间戳之间进行转换?...可以看出他们有以下不同: 一般情况下,hash索引进行等值查询更快,但是却无法进行范围查询。因为在hash索引中经过hash函数建立索引之后,索引顺序原顺序无法保持一致,不能支持范围查询。...、算术运算或其他表达式运算,否则系统将可能无法正确使用索引尽量避免在where 子句中对字段进行 null 判断,否则将导致引擎放弃使用索引进行全表扫描; 尽量避免在 where 子句中使用 or...实例服务,先top查看是那一个进程占用CPU; show processeslist 查看线程是否有锁住; 查看慢查询,找出执行时间长sql;explain分析sql是否走索引,sql优化;

73110

架构面试题汇总:mysql索引全在这!(五)

优势是查询速度快,劣势是每个表只能有一个主键,且不允许有空。 唯一索引(Unique Index):唯一索引主键索引类似,不同是,一个表可以有多个唯一索引。...选择性高列(即唯一列)通常更适合放在复合索引前面,因为它们可以提供更多过滤条件。而基数低列(即重复列)可能不太适合作为索引一部分,因为它们无法提供有效过滤。...过长索引会占用更多存储空间和维护开销,而过短索引可能无法提供足够过滤条件。此外,不同类型索引(如B+树索引、哈希索引等)具有不同特点和适用场景,应根据实际需求进行选择。...答案: 在使用索引时,以下是一些常见性能优化建议: 选择性高列优先:在选择索引列时,应优先考虑选择性高列(即唯一列),因为它们可以提供更多过滤条件并减小扫描范围。...检查查询条件:确保查询条件索引列匹配,并且没有使用不支持索引函数或表达式。 使用FORCE INDEX:作为临时解决方案,可以使用FORCE INDEX指令强制MySQL使用特定索引

16210

MySQL面试题 硬核47问

按照 作用字段个数 进行划分,分成单列索引和联合索引普通索引: 即针对数据库表创建索引唯一索引: 普通索引类似,不同就是:MySQL数据库索引必须唯一,但允许有空主键索引: 它是一种特殊唯一索引...InnoDB 存储引擎提供了具有提交、回滚、崩溃恢复能力事务安全, MyISAM 比 InnoDB 写效率差一些,并且会占用更多磁盘空间以保留数据和索引21、MySQL遇到过死锁问题吗,你是如何解决...截取得多了,达不到节省索引存储空间目的;截取得少了,重复内容太多,字段散列度(选择性)会降低。怎么计算不同长度选择性呢?...先看一下字段在全部数据中选择度:select count(distinct address) / count(*) from shop;通过不同长度去计算,全表选择性对比:公式:count(distinct...列为NULL也是可以走索引计划对列进行索引,应尽量避免把它设置为可空,因为这会让 MySQL 难以优化引用了可空列查询,同时增加了引擎复杂度45、如果要存储用户密码散列,应该使用什么字段进行存储

1.3K40

mysql优化大全

possible_keys 可能用到索引 key 实际使用索引 key_len 实际使用索引长度 ref 当使用索引列等值查询时,索引进行等值匹配对象信息 rows 预估需要读取记录条数...尽量使用覆盖索引 多个索引间注意不要出现有包含关系索引,避免冗余 查询语句如何优化 尽量避免在 where 子句中对字段进行 null 判断 应尽量避免在 where 子句中对字段进行 null...因为SQL只有在运行时才会解析局部变量,但优化程序不能将访问计划选择推迟到运行时;它必须在编译时进行选择。然 而,如果在编译时建立访问计划,变量还是未知,因而无法作为索引选择输入项。...何时分库 如果单库达到了性能瓶颈,同时并发量还挺高时候,考虑采用分库方法 如何分库 水平分库 水平分库理论上切分起来是比较麻烦,它是指将单张表数据切分到多个服务上去,每个服务器具有相应表...此时就会按照一定业务逻辑进行垂直切,比如用户相关表放在一个数据库里,订单相关表放在一个数据库里。注意此时不同数据库应该存放在不同服务上,此时磁盘空间、内存、TPS等等都会得到解决

53420

mysql数据库面试题目及答案_数据库面试题2021

虽然 VARCHAR 是根据字符串长度分配存储空间,但在内存中依旧使用声明长度进行排序等作业,故在使用时仍需综合考量字段长度。 3、CHAR 和 VARCHAR 如何选择?...2 索引 首先了解一下什么是索引索引是对数据库表中一列或进行排序数据结构,用于快速访问数据库表中特定信息。 1、索引几种类型或分类?...Hash 1)Hash 进行等值查询更快,但无法进行范围查询。因为经过 Hash 函数建立索引之后,索引顺序原顺序无法保持一致,故不能支持范围查询。同理,也不支持使用索引进行排序。...在不使用索引下推情况下,在使用非主键索引进行查询时,存储引擎通过索引检索到数据,然后返回给 MySQL 服务,服务判断数据是否符合条件。...key_len 显示索引字段最大可能长度,并非实际使用长度。即 key_len 是根据表定义计算而来。

65010

mysql数据库面试题目及答案_数据库面试常问问题

虽然 VARCHAR 是根据字符串长度分配存储空间,但在内存中依旧使用声明长度进行排序等作业,故在使用时仍需综合考量字段长度。 3、CHAR 和 VARCHAR 如何选择?...2 索引 首先了解一下什么是索引索引是对数据库表中一列或进行排序数据结构,用于快速访问数据库表中特定信息。 1、索引几种类型或分类?...Hash 1)Hash 进行等值查询更快,但无法进行范围查询。因为经过 Hash 函数建立索引之后,索引顺序原顺序无法保持一致,故不能支持范围查询。同理,也不支持使用索引进行排序。...在不使用索引下推情况下,在使用非主键索引进行查询时,存储引擎通过索引检索到数据,然后返回给 MySQL 服务,服务判断数据是否符合条件。...key_len 显示索引字段最大可能长度,并非实际使用长度。即 key_len 是根据表定义计算而来。

37770

MySQL性能管理及架构设计

3、网卡流量:如何避免无法连接数据库情况 减少从服务数量(从服务会从主服务复制日志) 进行分级缓存(避免前端大量缓存失效) 避免使用select * 进行查询 分离业务网络和服务网络 4、大表带来问题...可参考“MySQL中字段类型合理选择字段类型;int(11)最大长度是多少?...唯一索引"普通索引"类似,不同就是:索引必须唯一,但允许有空。...分担读负载 可通过 一主从,升级硬件来解决。...3)数据库分片 对一个库中相关表进行水平拆分到不同实例数据库中: 如何选择分区键 分区键要能尽可能避免跨分区查询发生 分区键要尽可能使各个分区中数据平均 分片中如何生成全局唯一ID 可参考“

57230

高性能 MySQL 第四版(GPT 重译)(二)

跳到最后,配置文件中最后一节是用于mysql和mysqladmin等客户端程序,只是让它们知道如何连接到服务。您应该设置客户端程序您为服务选择相匹配。...如果需要按照前几个字符进行排序,可以减少 max_sort_length 服务变量。 MySQL 无法对这些数据类型完整长度进行索引,也无法使用索引进行排序。...其 CLI 实现在选择 CI 解决方案集成时提供了很大灵活性。如何直接将 Skeema CI 解决方案集成将需要考虑 CI 解决方案具有的功能。...索引选择性是索引不同数(基数)表中总行数(#T)比率,范围从 1/#T到 1。高度选择索引很好,因为它让 MySQL 在查找匹配项时过滤更多行。唯一索引选择性为 1,这是最好选择。...这个想法是增加前缀长度,直到前缀几乎完整长度一样具有选择性。

21910

大佬整理mysql规范,分享给大家

Linux下大小写规则 数据库名表名是严格区分大小写; 表别名是严格区分大小写; 列名别名在所有的情况下均是忽略大小写; 变量名也是严格区分大小写; 如果已经设置了驼峰式命名如何解决...单条记录大小禁止超过8k(列长度(中文)_3(UTF8)+列长度(英文)_1) datetimetimestamp有什么不同? 相同点: TIMESTAMP列显示格式DATETIME列相同。...同CHAR对比,VARCHAR保存时只保存需要字符数,另加一个字节来记录长度(如果列声明长度超过255,则使用两个字节)。VARCHAR保存时不进行填充。...不使用UUID MD5 HASH 默认使用非空唯一键 建议选择自增或发号 重要SQL必须被索引,核心SQL优先考虑覆盖索索引 UPDATE、DELETE语句WHERE条件列 ORDER BY、...可以使用id > n 方式进行解决使用id > n 方式有局限性,对于id不连续问题,可以通过翻页时候同时传入最后一个id方式来解决

1.1K20

MySQL命名、设计及使用规范--------来自标点符《MySQL命名、设计及使用规范》

Linux下大小写规则: 数据库名表名是严格区分大小写; 表别名是严格区分大小写; 列名别名在所有的情况下均是忽略大小写; 变量名也是严格区分大小写; 如果已经设置了驼峰式命名如何解决...单条记录大小禁止超过8k(列长度(中文)*3(UTF8)+列长度(英文)*1) datetimetimestamp有什么不同? 相同点:TIMESTAMP列显示格式DATETIME列相同。...在存储或检索过程中不进行大小写转换。 VARCHAR列中为可变长字符串。长度可以指定为0到65,535之间。(VARCHAR最大有效长度由最大行大小和使用字符集确定。...不使用UUID MD5 HASH 默认使用非空唯一键 建议选择自增或发号 4、 重要SQL必须被索引,核心SQL优先考虑覆盖索索引 UPDATE、DELETE语句WHERE条件列 ORDER...不使用%前导查询,如like “%ab” 4、不使用负向查询,如not in/like 无法使用索引,导致全表扫描 全表扫描导致buffer pool利用率降低 5、避免使用存储过程、触发、UDF

5.6K20

MySQL面试题(最全、超详细)——定位慢查询、聚簇索引、覆盖索引、深分页优化、sql优化、并发事务问题、隔离级别、undo logredo log、主从同步

3)尽量选择区分度高列作为索引,尽量建立唯一索引,区分度越高,使用索引效率越高。4)如果是字符串类型字段,字段长度较长,可以针对于字段特点,建立前缀索引。...例如:全表扫描效率更优:在某些情况下,MySQL 优化可能认为全表扫描比使用索引更快。数据分布不均:如果索引数据分布非常不均匀,MySQL 可能不会选择使用索引。...索引列包含 NULL :如果索引列包含 NULL ,MySQL可能不会使用索引,因为 NULL 比较有特殊性。因为NULL无法与其他进行比较或匹配,所以无法使用索引。...《嵩山版》)比如设置合适数值(tinyint int bigint),要根据实际情况选择比如设置合适字符串类型(char和varchar)char定长效率高,varchar可变长度,效率稍低...参考 黑马程序员相关视频文档、MySQL进阶 1:存储引擎、索引、事务、并发事务四大问题、事务隔离级别——脏写、脏读、不可重复读、幻读、MVCC 原理分析、MySQL是如何解决幻读

8510

精选MySQL面试题(附刷题小程序)

VARCHAR使用额外1或2个字节存储字符串长度。列长度小于255字节时,使用1字节表示,否则使用2字节表示。 VARCHAR存储内容超出设置长度时,内容会被截断。...TABLE table_name ADD INDEX index_name(column1, column2, column3); 唯一索引 普通索引类似,不同就是:MySQL 数据库索引必须唯一...应尽量避免在 where 子句中对字段进行 null 判断,否则将导致引擎放弃使用索引进行全表扫描,如: select id from t where num is null -- 可以在num上设置默认...然 而,如果在编译时建立访问计划,变量还是未知,因而无法作为索引选择输入项。...解决方案:解决跨节点join问题类似,分别在各个节点上得到结果后在应用程序端进行合并。和join不同是每个结点查询可以并行执行,因此很多时候它速度要比单一大表快很多。

70330

10 分钟掌握 MySQL 索引查询优化技巧

不同存储引擎具有不同特点,用户可以根据业务特点选择适合存储引擎,甚至是开发一个新引擎。MySQL逻辑架构大致如下: ?...主键类型选择 尽可能使用整型,整型占用空间少,还可以设置为自动增长。...查询使用应该尽量从左往右匹配,另外,如果左边列范围查找,右边列无法使用索引;还有就是不能隔列查询,否则后面的索引无法使用到。...select * from t where f2 = 'v2' and f1 'v1' 索引顺序很重要,通常,不考虑排序和分组查询时,应该把选择性(选择性是指某表索引不同数据个数/总行数...索引覆盖扫描 增加汇总表 增加内存缓存系统记录数据条数 关联查询优化 MySQL优化关联表查询是这样进行,比如有两个表A和B通过c列关联,MySQL会遍历A表,然后根据遍历到c列去B表中查找数据

95920
领券