详细介绍 Mysql 数据库 · 索引篇,图文解析带你搞懂 InnoDB 存储引擎索引结构、优缺点、失效情况等

MySQL索引 二级索引:idx_name_age 包含了 name 与 age两个字段查询语句:select name,age from table where name = 'xxx'像上述这种情况,所需要查询的字段正是二级索引中所包含的字段,二级索引可以直接满足查询需求,所以这种情况下就无需再回表查询了。 阅读详情

目录

InnoDB索引

什么是索引?

索引的分类

数据存储结构 B 树和 B+ 树区别

索引的优缺点

各索引结构及优缺点

聚簇索引与非聚簇索引

哈希索引

唯一索引

联合索引

索引下推

使用索引下推对比

索引下推使用条件

索引失效

索引失效情况

索引排序内部流程

排序流程

拓展 row_id 排序


前言

我们知道mysql的有着不同的存储引擎,其中包括:InnoDB、MyISAM、Memory等

本篇文章以 InnoDB索引 为例介绍索引,重在理解原理。希望本篇文章能够帮助你们更进一步理解索引

InnoDB索引

什么是索引?

在关系型数据库中,索引是一种单独的、物理的 对数据库表的一列或者多列的值进行排序 的一种存储结构。

索引的作用相当于图书的目录,能够快速定位到所需的内容。

能实现快速定位数据的一种存储结构,其设计思想是以 空间换时间。

索引的分类

按数据结构分:B+tree索引、Hash索引、Full-text索引

按物理存储分:聚簇索引(主键索引)、二级索引(辅助索引)

按字段特性分:主键索引、唯一索引、普通索引、前缀索引

按字段个数分:单列索引、联合索引(组合索引)

数据存储结构 B 树和 B+ 树区别

B- tree

特点:

  • 树是进行排序的
  • 一个节点有多个元素,内部也是进行排序的

B+ tree

B+ tree是 B的升级版,有着B树相同的特点

额外特点:

  • 叶子节点之间有指针了,在mysql中是一个双向的指针
  • 非叶子节点的数据冗余了一份在叶子节点

索引的优缺点

优点

·索引能够提高数据检索的效率,降低数据库的IO成本。

优点

  • 索引能够提高数据检索的效率,降低数据库的IO成本。
  • 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性
  • 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间
  • 加速两个表之间的连接,一般是在外键上创建索引

缺点

  • 需要占用物理空间,建立的索引越多需要的空间越大
  • 创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加
  • 会降低表的增删改的效率,因为每次增删改索引需要进行动态维护,导致时间变长

各索引结构及优缺点

聚簇索引与非聚簇索引

聚簇索引

1.聚簇索引将数据存储在索引树的叶子节点上。

2 . 聚簇索引可以减少一次查询,因为查询索引树的同时就能获取到数据。

3 . 聚簇索引的缺点是,对数据进行修改或删除操作时需要更新索引树,会增加系统的开销。

4.聚簇索引通常用于数据库系统中,主要用于提高查询效率。

非聚簇索引(又称二级索引/辅助索引)

1.非聚簇索引不将数据存储在索引树的叶子节点上,而是存储在数据页中。

2.非聚簇索引在查询数据时需要两次查询,一次查询索引树,获取数据页的地址,再通过数据页的地址查询数据(通常情况下来说是的,但如果 索引覆盖 的话实际上是不用回表的)。

索引覆盖:查询的信息被建立索引的列包括,例 select username from user where username = 'lucy'

3.非聚簇索引的优点是,对数据进行修改或删除操作时不需要更新索引树,减少了系统的开销。

4.非聚簇索引通常用于数据库系统中,主要用于提高数据更新和删除操作的效率。

哈希索引

什么是哈希索引?

哈希索引(hash index)基于哈希表实现。哈希索引通过Hash算法将数据库的索引列数据转换成定长的哈希码作为key,将这条数据的行的地址作为value一并存入Hash表的对应位置。

在MySQL中,只有Memeory引擎显式的支持哈希索引,这也是Memory引擎表的默认索引结构,Memeory同时也支持B-Tree索引。并且,Memory引擎支持非唯一哈希索引,如果多个列的哈希值相同(或者发生了Hash碰撞),索引会在对应Hash键下以链表形式存储多个记录地址。

InnoDB到底支不支持哈希索引?

对于InnoDB的哈希索引,确切的应该这么说:

  • InnoDB用户无法手动创建哈希索引,这一层上说,InnoDB确实不支持哈希索引
  • InnoDB会自调优(self-tuning),如果判定建立自适应哈希索引(Adaptive Hash index,AHI),能够提升查询效率,InnoDB自己会建立相关哈希索引,这一层上说,InnoDB又是支持哈希索引的

唯一索引

其实和"普通索引"类似,不同的就是:索引列的值必须唯一,但允许有空值。可以是单列唯一索引,也可以是联合唯一索引。

最大的所用就是确保写入数据库的数据是唯一值。(业务:身份证案例)

  • 普通索引 查到满足条件的第一条记录,继续查找下一条记录,直到找到不满足条件的记录
  • 唯一索引 查到第一个满足条件的记录,就停止搜索。

InnoDB 它是以 数据页 为单位进行读写的,我们读一条记录,并不是从磁盘加载一条记录,而是以页为单位整体读到内存里面来的。

普通索引比唯一索引就多了一次 查找和判断下一条 记录的操作,也就是一次指针寻找数据和一次计算。当然还有一种特殊情况,读取到的这条数据正好是数据页的最后一条。但是这种概率也是非常低,几乎可以忽略不计。

来看第二个更新的性能,我们按照上面图上的例子在 2 和 6 之间插入一个3

在内存中

  • 普通索引 找到2和6之间的位置 >插入值 >结束.
  • 唯一索引 找到2和6之间的位置> 当判断有没有冲突 插入值 结束

不在内存中

  • 普通索引 将更新记录在 change buffer > 结束.
  • 唯一索引 将数据页读入内存> 当判断到没有冲突 >插入值 >结束

数据读取到内存涉及了随机0 访问,这是在数据库里面成本最高的操作之一,而 change buffer 就可以减少这种随机磁盘访问,所以性能提示比较明显。所以在这一块来说,如果两者在业务场景下都能满足时可以优先考虑使用普通索引,如果有唯一性要求就选择唯一索引

联合索引

一个索引包含多个列

  • 单列索引 一个索引只包含了一个列,一个表里面可以有多个单列索引,但是这不叫组合索引。
  • 组合索引 (联合索引& 复合索引)一个索引包含多个列。看上去感觉这组合索引并没有太大作用是吧,我一个列已经有一个索引了,我还要这组合索引干嘛?真相往往不那么简单,首先我们得承认我们的业务千变万化,我们的查询语句条件肯定是非常多的。高效率 如果说只有单列索引,那就会涉及多次二级索引树查找,再加上回表,性能相对于联合索引来说是比较低的。
  • 减少开销 我们要记得创建索引是存在空间开销的,对于大数据量的表,使用联合索引会降低空间开销。
  • 索引覆盖 如果组合索引索引值已经满足了我们的查询条件,那么就不会进行回表,直接返回。

但是我们按照我们的查询条件去创建一个联合索引的话,就避免了上面的问题。那么联合索引是怎么工作的呢?这里涉及到了一个重点,叫做 最左前缀 ,简单理解就是只会从最左边开始组合,组合索引的第一个字段必须出现在查询组句中,还不能跳跃,只有这样才能让索引生效,比如说我查询条件里面有组合索引里面的第二个字段,那么也是不会走组合索引的。举个例子

必须是先查username(select条件里有)因为创建索引时username是最左的

特殊情况:

select * from user age = 18 and username = '张三' 也是可以执行的。无论username是否写在前面,都会先查username满足条件的

索引下推

索引下推(ICP)目标是减少全行记录读取,从而减少IO操作,只能用于非聚簇索引。聚簇索引本身包含的表的数据,也就不存在下推一说

使用索引下推对比

使用前

假设name和age建立了联合索引

1、通过 %张 在二级索引中查找到性张的用户

2,3、将找到的数据进行回表,拿到行数据

4、将数据回表到服务层

5、根据条件过滤数据

使用后

把其它的查询条件下推到引擎层

1、通过 %张 在二级索引中查找到性张的用户,在引擎层就过滤掉不符合条件的行

2、进行回表查行数据

3、回表到服务层,减少了条件过滤

对比优点

  • 减少回表次数
  • 在服务层减少条件过滤
  • 减少全行记录读取,从而减少IO操作

索引下推使用条件

索引失效

索引失效情况

特殊情况

  • 左边带%,如果查询的字段是索引列,也可以正常走索引
  • order by 情况

sql查询分为三步,1、根据条件查询数据

2、查看执行计划是否使用索引

3、如果使用了直接引用索引的排序,如果没有使用则在得到的数据进行排序

所以order by 排序是否走索引不取决于order by之后的字段,限于查询数据时使用的执行计划,执行计划将根据 成本 来决定此查询是否走索引等信息

索引排序内部流程

排序流程

前置知识:mysql会为每一个线程分配一个 sort buffer,用作当前操作用与排序的内存空间。可以通过 sort_buffer_size 来控制大小,默认为256kb。

  • 首先会初始化一个sort buffer,将需要查询的字段放到sort buffer里
  • 根据第一个字段找到主键值
  • 进行查询将数据放到sort buffer里

拓展 row_id 排序

首先需要了解一个参数 *max_length_for_sort_data * 用户进行排序的默认行数。如果需要排序的字段超过了这个数量,将自动升级为 row_id 排序,默认为4096。

row_id 排序的思想为 将不需要的字段不放入sort buffer ,而只放入需要排序的字段来节省空间。但因为row_id并没有放入所有字段,所以row_id有一个回表的过程,这是row_id排序最大的区别

使用VNC可视化Docker容器 Docker容器可视化 阅读详情

相关推荐

【复现论文】Looking here or there? Gaze Following in 360-Degree Images

论文:Looking here or there?

RichardoMu的博客 1128

mysql索引排序内部流程

MySQL排序优化策略:当查询字段被索引覆盖时直接内存排序;否则根据字段量决定采用单路或双路排序。单路排序一次性加载所有字段到内存排序,效率高但耗内存;双路排序先排序索引字段再回表查询,适合大字段查询。优化建议包括:尽量使用索引排序(Index方式),避免文件排序(FileSort);遵循最左前缀原则;注意单路排序的内存限制参数max_length_for_sort_data(默认1024字节)。通过合理设计索引和调整参数,可显著提升ORDER BY性能。

ywl470812087的博客 917

CEH Practical 实战考试真题与答案

CEH Practical 是 EC-Council 推出的Certified Ethical Hacker(CEH)认证项目中的一项高级动手实践考试。它不同于传统的理论考试,侧重于在真实环境中检验考生的实操能力。

sgafdgdagd的博客 966

mysql中INNODB索引的执行全过程详解

mysql中INNODB索引的执行全过程详解

向上的"狼"的博客 1968

ERA5 hourly data批量下载与cdo处理(一)

本篇文章主要介绍了ERA数据的批量下载

qq_40511689的博客 3871

从被秒封到稳过Cloudflare!Canvas/WebGL/WebRTC多维度浏览器指纹隐身全实战

反爬和反反爬,本质上是一场持续的博弈,没有100%的隐身,只有不断升级的伪装。网上很多教程只给了个基础的噪声代码,却没讲透反爬的检测逻辑,导致你用了还是被封。这套方案的核心,不是简单的API重写,而是站在反爬的角度,模拟真实用户的所有特征,保证所有指纹的一致性、合理性、完整性。目前这套方案我用了半年,跑了上千万次请求,稳过国内国外99%的主流反爬平台,没有出现过一次因为指纹关联导致的批量封禁。大家有什么更狠的反爬场景,或者更好的伪装技巧,欢迎评论区一起交流。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1193

第五章 InnoDB存储引擎——索引与算法

每张表中可以有多个辅助索引,当通过辅助索引来寻找数据时,InnoDB存储引擎会便利辅助索引并通过叶级别的指针获得指向主键索引的主键,然后再通过主键索引来找到一个完整的行记录。聚集索引(clusteredindex)就是按照每张表的主键构造一棵B+树,同时叶子节点中存放的即为整张表的行记录数据,也将聚集索引的叶子节点称为数据页。因为插入总是顺序的,从中间分裂后,分裂后的页将不再有数据插入。数据页上存放的是完整的每行的记录,而在非数据页的索引页中,存放的仅仅是键值及指向数据页的偏移量,而不是一个完整的行记录。

vvstormhao的博客 237

【车联网】Automotive 软件过程能力成熟度模型——ASPICE标准入门介绍

ASPICE标准详细定义了与汽车电子软件开发相关的各种术语和概念,包括软件组件、系统集成、测试和验证等。这些定义确保了所有开发团队在使用相同术语时具有一致的理解。

奶爸的编程之路,也就一周冷个三天 2676

MySQL排序“order by”如何实现

定义表: CREATE TABLE `t` ( `id` int(11) NOT NULL, `city` varchar(16) NOT NULL, `name` varchar(16) NOT NULL, `age` int(11) NOT NULL, `addr` varchar(128) DEFAULT NULL, PRIMARY KEY (`id`), KEY `city` (`city...

weixin_34146805的博客 964

YOLO26 网络结构逐模块解析:Backbone/Neck/Head

本文解析了YOLO26目标检测网络的架构设计,重点介绍其在Backbone、Neck和Head三个核心组件的创新优化。Backbone采用改进的CSP模块与轻量级注意力机制,提升特征提取效率;Neck使用改进的BiFPN结构实现高效多尺度特征融合;Head采用完全解耦设计简化回归流程。文章详细分析了各模块的技术演进、实现细节和设计思想,通过流程图和代码示例展示了YOLO26的整体架构和关键组件实现。该研究对模型优化、定制开发和硬件部署具有重要指导意义。

一键难忘的博客 1241

光通量与辐射通量之间的换算

由理论和实验可知存在两种定义: 1W1W1W(瓦特)的频率为540×1012Hz540\times10^{12}Hz540×1012Hz(赫兹)的单色辐射的辐射通量等于683lm(流明)683lm(流明)683lm(流明).。 1lm1lm1lm的频率为540×1012Hz540\times10^{12}Hz540×1012Hz的单色通量等于1683=0.001464W\frac{1}{683}=0.001464W6831​=0.001464W。 从上述定义中我们可以得到什么呢?我们知道光速: c=3×

u011699626的博客 3270

mysql

二叉查找树BST若左子树不空,则左子树上所有结点的值均小于它的根结点的值;若右子树不空,则右子树上所有结点的值均大于它的根结点的值;左、右子树也分别为二叉排序树;没有键值相等的节点查找最好时间复杂度 O(logN),最坏时间复杂度 O(N);插入删除操作算法简单,时间复杂度与查找差不多。缺点:​ 最差情况下竟然和顺序查找效率相当平衡二叉树AVL概念:它是一棵空树或它的左右两个子树的高度差的绝对值不超过 1,并且左右两个子树都是一棵平衡二叉树。

weixin_53854647的博客 1152

Nacos 从困惑到蒙圈(9)Nacos 适配 达梦数据库【最新版】

介绍Nacos适配达梦数据库的详细步骤,包括对最新版本的支持改造。

甘蓝的专栏 1376

一文搞懂 MySQL 索引

一文搞懂 MySQL 索引 1、MySQL 索引 简介 2、MYSQL 索引 的分类 3、MySQL 索引 的数据结构 4、MySQL 索引 的实现 4.1、MyISAM 索引 4.2、InnoDB 索引 5、MySQL 索引 的使用

weixin_51123079的博客 2万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

MySQL数据库进阶篇一(存储引擎、索引)

前缀长度 n:根据索引选择性决定,选择性指不重复的索引值(基数)和 表记录总数的比值,索引选择性越高则查询效率越高。覆盖索引:指查询使用了索引,并且需要返回的列,在该索引中已经全部能够找到。尽量使用覆盖索引,减少select *。五个指针: 指针1(key

qq_45606619的博客 3056

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Mysql进阶-索引篇

连接层最上层是一些客户端和链接服务,主要完成一些类似于连接处理、授权认证、及相关的安全方案。服务器也会为安全接入的每个客户端验证它所具有的操作权限。服务层第二层架构主要完成大多数的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析和优化,部分内置函数的执行。所有跨存储引擎的功能也在这一层实现,如 过程、函数等。引擎层存储擎真正的负责了MySQL中数据的存储和提取,服务器通过API和存储引擎进行通信。不同的存储引擎具有不同的功能,这样我们可以根据自己的需要,来选取合适的存储引擎。

m0_59230408的博客 1万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Mysql索引详解

文章目录一、为什么需要索引?(索引的优缺点)1、索引产生的意义2、索引的优缺点二、索引的分类三、B树-数据库索引原理1、B树(平衡多路查找树)2、B+树3、B+树的优势四、聚合索引(InNoDB存储引擎)与非聚合索引(MyISAM存储引擎)1、聚合索引2、非聚合索引3、InNoDB与MyISAM异同五、组合索引(覆盖索引)1、index Key:索引数据范围2、Index Filter :用于过滤...

洛豳枭薰 9766

MySQL存储引擎的区别与比较

存储引擎,即表类型(table_type) 用户可以根据应用的需求选择如何来存储数据、索引、是否使用事务等。选择合适的存储引擎往往能够有效的提高数据库的性能和数据的访问效率,另外一个数据库中的多个表可以使用不同引擎的组合以满足各种性能和实际需求。 MySQL支持很多存储引擎,包括MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDB Cluster、ARCHIVE...

keil_wang的博客 2万+

MySQL 篇-深入了解存储引擎、索引(InnoDB 索引结构 B+Tree、索引使用规则)

存储引擎就是存储数据、建立索引、更新、查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。默认的存储引擎为 InnoDB。show create table 表名;索引是帮助 MySQL 高效获取数据的有序的数据结构。在数据之外,数据系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用指向数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。索引的优缺点:优点:1)提高数据检索的效率,降低数据库的 IO 成本。

m0_54850786的博客 1072

MySQL 索引,存储引擎,事务

MySQL 索引,存储引擎,事务

MMMMMMMay 1295

MySQL的索引和B+tree结构

一句话简单来说,索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。一本 500 页的书,如果你想快速找到其中的某一个知识点,在不借助目录的情况下,那你可能得找一会儿。同样,对于数据库的表而言,索引其实就是它的“目录”。所以,索引就是提高查询速度的数据结构(有序的)。而能提高查询速度的,说明这些数据是按照一定规则排序好的。索引的优缺点提高数据检索效率,降低数据库的IO成本通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗索引列也是要占用空间的。

m0_57408211的博客 961

一文搞懂MySQL索引(清晰明了)

索引是对数据库表中一列或多列的值进行排序的一种结构。MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。索引只是提高效率的一个因素,如果你的MySQL有大数据量的表,就需要花时间研究建立最优秀的索引,或优化查询语句。??简单类比一下,数据库如同书籍,索引如同书籍目录,假如我们需要从书籍查找与 xx 相关的内容,我们可以直接从目录中查找,定位到 xx 内容所在页面,如果目录中没有 xx 相关字符或者没有设置目录(索引),那只能逐字逐页阅读文本查找,效率可想而知。如果你

m0_54849806的博客 3039

MySQL索引篇

索引覆盖(Index Covering)是指通过在索引中包含所有查询语句中所需的列,可以避免对表中的数据进行额外的访问,从而提高查询效率。(避免了回表操作)如果在table表中建立了一个索引,包含col1、col2和col3三列,那么MySQL可以通过索引定位到符合条件的数据,并在索引中提取col1、col2和col3列的值,无需对表中的数据进行额外的访问。这种方式就叫做索引覆盖。索引覆盖能够显著提高查询效率,因此在建立索引时应尽量考虑包含查询语句中所需的所有列。

天明的博客 1197

【八股文】Mysql篇

这里写目录标题数据库的三大范式是什么Mysql的存储引擎都有哪些,有什么区别Mysql数据库的隔离级别,以及不同隔离级别下存在的问题索引索引是什么索引的作用索引的类型哪些情况会不走索引Sql优化Explain执行计划:Sql优化的一般手段简单说一说drop、delete和truncate的区别 数据库的三大范式是什么 第一范式(确保每列保持原子性) 所有字段值都是不可分解的原子值,比如说code和name是两个字段,不能合并成一个 第二范式(确保表中的每列都和主键相关) 意思就是不要冗余字段,所属单

weixin_45325628的博客 1万+

MySQL存储引擎及索引简介

索引是帮助 MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查询算法,这种数据结构就是索引。优缺点:提高数据检索效率,降低数据库的IO成本通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗索引列也是要占用空间的索引大大提高了查询效率,但降低了更新的速度,比如 INSERT、UPDATE、DELETE。

fanfangyu的博客 927

MySQL-事务的特性、隔离级别、存储引擎、索引、连接查询、索引失效、查询优化、删除区别、数据库范式、InnoDB锁机制-书写顺序和执行顺序

文章目录1 事务的特性(ACID)2 MySQL中InnoDB支持的四种事务隔离级别3 存储引擎3.1 MyISAM3.2 InnoDB3.3 Memory4 什么是索引?都有哪些索引?4.1 索引定义、优缺点4.2 索引类型4.3 索引存储类型4.4 B+Tree索引4.5 聚簇索引与聚集索引4.6 非聚集索引与聚集索引的区别4.7 聚簇索引的优缺点5 简述内连接和外连接6 索引失效的情况7 查询优化?8 delete、drop、truncate的区别9 数据库范式10 innoDB锁机制10.1 inn

qq_39497997的博客 2140
上一篇: 一文轻松搞懂 类加载机制 --【双亲委派机制】执行过程(类信息获取,加载)
下一篇: 基于 RedisTemplate + 线程池 实现 Redis分布式锁(含模板、带图文、代码段示例引导)
durancer
博客等级 码龄6年 5130粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

durancer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值