mysql 面试题库
时间: 2023-08-03 12:08:18 浏览: 100
数据库面试题库
回答: MySQL是一种关系型数据库管理系统,而非关系型数据库(NOSQL)是一种不需要经过SQL层解析的数据库,具有一些优点。首先,NOSQL数据库的读写效率高,因为它们不需要经过SQL层的解析。其次,NOSQL数据库基于键值对,读写性能很高,并且可以支持多种类型的数据存储,如图片、文档等。此外,NOSQL数据库易于扩展,可以适应数据量大和高可用性要求的场景,比如日志系统和地理位置存储系统。\[1\]
关于MySQL语句的执行步骤,MySQL内部维护了一个全局变量global_query_id,每次执行语句时,将其赋值给Query_id,并给这个变量加1。如果当前语句是事务的第一条语句,MySQL还会将Query_id赋值给该事务的Xid。这样可以对每个语句和事务进行标识和追踪。\[2\]
MySQL在执行语句之前无法精确知道满足条件的记录有多少条,只能根据统计信息来估算记录数。这个统计信息是索引的"区分度",MySQL使用它来判断一行扫描数。\[3\]
至于redo log和binlog的区别,redo log是InnoDB存储引擎的一种日志,用于保证事务的持久性。它记录了对数据页的物理修改操作,以便在崩溃恢复时进行重做。而binlog是MySQL的二进制日志,记录了对数据库的逻辑修改操作,用于主从复制和恢复。redo log是在事务提交时写入,而binlog是在事务提交后写入。此外,redo log是循环写入的,而binlog是追加写入的。\[2\]
#### 引用[.reference_title]
- *1* *2* *3* [MySQL 精选 60 道面试题(含答案)](https://blog.csdn.net/hahazz233/article/details/125372412)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文