【MySQL面试题pro版-12】

MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的RDBMS (Relational Database Management System,关系数据库管理系统)应用软件之一。

MySQL有关权限的表都有哪几个?

MySQL中用于控制权限的表主要有六张表,它们分别是:

  1. user表:存储全局权限,即用户是否有权连接到MySQL服务器,以及用户密码等信息。它包含Host, User, Password等字段。
  2. db表:定义了用户对某个数据库的权限,例如是否允许用户访问某个特定的数据库。
  3. tables_priv表:定义了用户对某个数据库中的某个表的权限,比如选择、插入、更新和删除等操作。
  4. columns_priv表:定义了用户对某个表中的某个列的权限,可以更细粒度地控制用户访问数据的能力。
  5. procs_priv表:用来指定哪些用户可以执行哪些存储过程。
  6. proxies_priv表:用来管理代理用户及其相关权限。

这些权限表在MySQL数据库初始化时由mysql_install_db脚本创建,并存放于mysql数据库内。通过这些表,MySQL实现了灵活而强大的权限管理体系,确保了数据库的安全性和数据的完整性。

Mysqld的完整性约束包含哪些

数据完整性是指数据的精确和可靠性,分为以下四类:实体完整性:规定表的每一行在表中是惟一的实体。域完整 性:是指表中的列必须满足某种特定的数据类型约束,其中约束又包括取值范围、精度等规定。参照完整性:是指 两个表的主关键字和外关键字的数据应一致,保证了表之间的数据的一致性,防止了数据丢失或无意义的数据在数据 库中扩散。用户定义的完整性:用户定义的完整性即是针对某个特定关系数据库的约束条件,它反映某一具体应用 必须满足的语义要求。与表有关的约束:包括非空约束(NOT NULL)和表约束(PRIMARY KEY、foreign key、check、 UNIQUE等等) 。

数据库事务是什么

事务是作为一个单元的一组有序的数据库操作,事务的特性在Spring框架中可分为ACID。如果组中的所有操作都成 功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所有操作完成,事务则提交,其修改将作用于所 有其他数据库进程。如果一个操作失败,则事务将回滚,该事务所有操作的影响都将取消。

MyISAM Static和MyISAM Dynamic有什么区别?

在 MyISAM Static 上的所有字段有固定宽度。动态 MyISAM 表将具有像 TEXT,BLOB 等字段,以适应不同长度的数 据类型。MyISAM Static 在受损情况下更容易恢复。

为什么MyISAM不支持行锁,而InnoDB支持?

MyISAM不支持行锁而InnoDB支持,这主要是因为两者在设计上的不同以及InnoDB对高级事务功能的支持导致的。具体如下:

  • 设计差异:InnoDB是MySQL 5.5版本之后默认采用的事务型存储引擎,而MyISAM是MySQL老版本中默认的存储引擎。InnoDB的设计目标是提供更高的并发性能和数据完整性,而MyISAM更注重于性能优化和查询速度。
  • 锁机制:InnoDB支持行级锁和表级锁,默认为行级锁,这使得它在高并发写操作时能够提供更好的性能。相比之下,MyISAM只支持表级锁,这意味着任何一个写操作都可能锁定整张表,导致其他读写操作被阻塞,从而影响并发性能。
  • 事务支持:InnoDB支持事务处理,包括提交和回滚,这是通过其行锁机制实现的,它允许多个事务并发执行而不互相干扰。而MyISAM不支持事务,因此也就不需要行锁这一复杂的机制。

总的来说,由于InnoDB提供了更细粒度的锁定机制,它在处理并发事务时更为高效和安全。而MyISAM虽然在某些情况下可能更快,但它缺乏事务和行锁支持,在需要高并发处理的场景下可能不是最佳选择。

相关推荐
骑着bug的coder1 分钟前
第11讲:主从复制与读写分离架构
后端·mysql
朝依飞3 分钟前
fastapi+SQLModel + SQLAlchemy2.x+mysql
数据库·mysql·fastapi
3***g20512 分钟前
redis连接服务
数据库·redis·bootstrap
m0_5981772320 分钟前
SQL 方法函数(1)
数据库
oMcLin21 分钟前
如何在Oracle Linux 8.4上通过配置Oracle RAC集群,确保企业级数据库的高可用性与负载均衡?
linux·数据库·oracle
信创天地21 分钟前
核心系统去 “O” 攻坚:信创数据库迁移的双轨运行与数据一致性保障方案
java·大数据·数据库·金融·架构·政务
胖咕噜的稞达鸭24 分钟前
进程间的通信(1)(理解管道特性,匿名命名管道,进程池,systeam V共享内存是什么及优势)重点理解代码!
linux·运维·服务器·数据库
德彪稳坐倒骑驴27 分钟前
Sqoop入门常用命令
数据库·hadoop·sqoop
资深web全栈开发28 分钟前
pg on delete 策略探讨
数据库·pg
玖日大大29 分钟前
Milvus 深度解析:开源向量数据库的技术架构、实践指南与生态生态
数据库·开源·milvus