本篇主要解析MySQL数据库中关于时间函数、权限控制以及锁机制的常见面试问题。
NOW() 与 CURRENT_DATE() 的区别
NOW() 函数返回当前日期和时间的完整值,包括年、月、日、时、分、秒。而 CURRENT_DATE() 函数仅返回当前日期值,即年、月、日。
MySQL 权限表
MySQL 服务器通过权限表控制用户对数据库的访问。权限表存储在 mysql
数据库中,由 mysql_install_db
脚本初始化。 主要的权限表包括:
user
:存储用户账户和全局权限信息。db
:存储数据库级别的权限信息。table_priv
:存储表级别的权限信息。columns_priv
:存储列级别的权限信息。host
:存储主机级别的访问控制信息。
MySQL 锁机制
MySQL 提供两种主要的锁机制:表锁和行锁。
- 表锁: MyISAM 引擎支持表锁。其开销小,加锁快,不会出现死锁,但锁定粒度大,容易发生锁冲突,并发性能较低。
- 行锁: InnoDB 引擎支持表锁和行锁,默认为行锁。行锁开销大,加锁慢,可能出现死锁,但锁定粒度小,发生锁冲突概率低,并发性能较高。
暂无评论