15个 MySQL 基础面试题,DBA 们准备好了吗

15个 MySQL 基础面试题,DBA 们准备好了吗,第1张

问题1:你如何确定 MySQL 是否处于运行状态?

答案: 在Debian 上运行命令 service mysql status,然后看输出即可。

在 RedHat 或者 centos 上运行命令 service mysqld status,然后看看输出即可。

问题2:如何开启或停止 MySQL 服务?

答案:运行命令 service mysqld start 开启服务;

运行命令 service mysqld stop 停止服务。

问题3:如何通过 Shell 登入 MySQL?

答案:运行命令 mysql -u用户名 -p登陆密码

问题4:如何列出所有数据库?

答案:运行命令 show databases

问题5: 如何切换到某个数据库并在上面工作?

答案:(1)运行命令 use database_name

(2)进入名为 database_name 的数据库。

问题6:如何列出某个数据库内所有表?

答案:在当前数据库运行命令 show tables

问题7:如何获取表内所有 Field 对象的名称和类型?

答案:运行命令 describe 表名

简写为desc 表名

问题8:如何删除表?

答案:运行命令 drop table 表名

问题9:如何删除数据库?

答案:运行命令 drop database 数据库名

问题10:如何查看表内所有数据?

答案:运行命令 select * from 表名

问题11:如何从表(比如 oc_users )中获取一个 field 对象(比如 uid)的所有数据?

答案:运行命令 select uid from oc_users

问题12:假设你有一个名为 ‘xyz’ 的表,它存在多个字段,如 ‘createtime’和 ‘engine’,

名为 engine 的字段由 ‘Memoty’ 和 ‘MyIsam’ 两种数值组成。

如何只列出 ‘createtime’ 和 ‘engine’ 这两列,并且 engine 的值为 ‘MyIsam’?

答案:运行命令 select create_time, engine from xyz where engine = “MyIsam”

问题13:如何列出表 ‘xrt’ 内 name 域值为 ‘tecmint’,web_address 域值为 ‘tecmint.com’ 的所有数据?

答案:运行命令 select * from xrt where name = “tecmint” and web_address = “tecmint.com”

问题14:如何列出表 ‘xrt’ 内 name 域值不为 ‘tecmint’,web_address 域值为 ‘tecmint.com’ 的所有数据?

答案:运行命令 select * from xrt where name != “tecmint” and web_address = “tecmint.com”

问题15:如何知道表内行数?

答案:运行命令 select count(*) from 表名

1、mysql记录存储:mysql的数据是怎么组织的

2、页内记录的维护(顺序保证/插入策略/页内查询)

3、MySQL内存管理(页面管理、页面淘汰、LRU):全表扫描对内存有什么影响? 如何避免热数据被淘汰? 没有空闲页怎么办?

4、InnoDB 加锁的过程是如何实现的?常见锁问题有那些?

5、MVCC是什么?如何实现多版本控制?如何解决写冲突?

6、回滚日志Undo log如何实现多版本控制与保证事务的原子性?

7、undo log如何清理,为何InnoDB select count(*)  这么慢?

8、重做日志Redo log如何实现事务持久性?

9、InnoDB行级锁、间隙锁、表级锁如何实现的?

10、InnoDB加锁过程如何实现的?

11、海量数据下 主键如何设计?

12、聚集索引、二级索引与联合索引具备哪些特点?

13、在进行索引优化时应该注意哪些问题/

14、MySQL如何进行库表的优雅设计?

15、如何实现数据备份之延时库部署

16、MySQL如何高效实现数据冗余部署

17、MySQL高可用方案有哪些


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6148063.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-16
下一篇 2023-03-16

发表评论

登录后才能评论

评论列表(0条)

保存