okx

阿里常见面试题,必备知识!

时间:2023-06-19|浏览:173

欧易

欧易(OKX)

用戶喜愛的交易所

币安

币安(Binance)

已有账号登陆后会弹出下载

1. 使用mysql索引的原则有哪些?使用什么数据结构?B+树和B树有什么区别?

1.1 对于查询频率高的字段创建索引; 1.2 对于排序、分组、联合查询频率高的字段创建索引; 1.3 索引的数目不宜太多,原因包括:a)每创建一个索引都会占用相应的物理空间;b)过多的索引会导致insert、update、delete语句的执行效率降低; 1.4 若需要将多个列设置索引时,可以采用多列索引,遵循BTree类型,即第一列使用时,才启用索引; 1.5 选择唯一性索引,唯一性索引的值是唯一的,可以更快速地通过该索引来确定某条记录; 1.6 尽量使用数据量少的索引; 1.7 尽量使用前缀来索引; 1.8 删除不再使用或者很少使用的索引。

B+树和B树是常用的索引数据结构,两者的区别在于B+树中的叶子节点都会分别指向相邻的叶子节点形成一个链表,因此可以更方便地进行范围查找和遍历。

2. Mysql有哪些存储引擎?请详细列举其区别?

Mysql有多种存储引擎,主要包括:

2.1 InnoDB:事务型存储引擎,支持高并发读取,具有较高的性能和可靠性; 2.2 MEMORY:存储引擎,存放在内存中,适用于数据量较小的情况,具有较快的速度; 2.3 Merge:将一组MyISAM表合并为一个逻辑表,支持查询、更新和删除等操作; 2.4 ARCHIVE:归档,具有良好的压缩机制和快速的数据检索能力。

3. 设计高并发系统数据库层面该如何设计?数据库锁有哪些类型?如何实现?

在设计高并发系统数据库时,可以采用以下策略:

3.1 分库分表,将相同量的数据平均存储在不同数据库相同表(或不同表)中,减轻单表压力,如果还是很大,就可以每个库在分多张表,根据hash取值或者其他逻辑判断将数据存储在哪张表中; 3.2 读写分离,数据库原本就有主从数据库之分,查询在从服务器,增删改在主服务器; 3.3 归档和操作表区分,可以建一张归档表,将历史数据放入,需要操作的表数据单独存储; 3.4 索引的创建,可以使用bitMap索引,速度较快; 3.5 应用合适的锁策略,数据库锁包括共享锁、更新锁、排它锁、意向锁和计划锁等,具体锁的选择应根据业务需求和并发量等情况进行决定。

4. 数据库事

热点:数据

« 上一条| 下一条 »
区块链交流群
数藏交流群
区块链币圈-全球区块链数字货币行情、比特币虚拟货币资讯,狗狗币以太坊环保币柚子币莱特币瑞波币等加密数字货币价格非交易行情查询,金色财经巴比特范非小号快讯平台。
趣开心资讯 Qukaixin.cn ©2020-2024版权所有 桂ICP备19010284号-1