索引和sql优化

数字信号处理实验:信号谱分析与FFT算法的应用 ​ (1)给定信号为 ,其中a为42,b为1。理论分析信号 的频率成分。 (2)分别采用采样频率为 , , , 对 进行采样,其中 , , , ,根据是否满足采样定理要求分析四种采样频率下频谱的分布,在满足采样定理情况下做频谱分析。 (3)任意生成两组有限长信号,对信号分别进行直接卷积和FFT算法求卷积,并分析圆周卷积与线性卷积的关系。 阅读详情

oracle实例:


SGA,系统全局区,整个数据库只有一个
    数据缓冲区 :  缓存数据
    共享池:  存放执行过的sql
    重做日志缓冲区: 用于支持回滚
    
PGA ,程序全局区,每个用户连接数据库之后,都会拥有一个独立的PGA,多个PGA相互之间是隔离的; 

oracle数据库:
硬盘上的地址:D:\app\Administrator\oradata\orcl
物理上划分:
    控制文件:后缀为ctl的文件,用于存放用户信息,登录信息,权限信息;
    日志文件:后缀为log的文件,用户数据库的恢复
    数据文件:后缀为dbf的文件,用于存放表空间,表,数据
逻辑上划分:
    所有的表和数据,都是存放在表空间里面的;
    新建一张表的时候,默认都是存放在USERS表空间中
    
*************************************************************************************************
索引
用于提高查询性能;
前提:有大量数据的情况下

索引的分类:
唯一索引和非唯一索引
单列索引和组合索引
B树索引:通常保存的数据是没有重复的
反向键索引:通常配合B树一起使用
位图索引 : 通常用于有大量重复数据的


关于主键,在为表设定主键的时候,系统默认会为主键创建一个唯一索引;
创建主键约束和唯一约束的时候,都会自动创建索引;

create table student(
    stuid number(8) primary key,
    stu_no number(20),
    sex   varchar2(50),
    card_no varchar2(30)
);


B树索引:
create index stunoIndex on student(stu_no);  --where stu_no-5>0
反向键索引
create index stunoIndex on student(stu_no) reverse;
位图索引:
create bitmap index sexIndex on student(sex);
组合索引
create index xxxindex on student(stu_no,sex,card_no);
当组合索引的第一个字段用于条件时,组合索引才会生效;
select 字段,字段 from student where stu_no=1 and sex='男' ;
函数索引
create index yyyindex on student(avg(sal));
如果索引字段,在查询中,非函数索引的字段不会使用索引;
索引字段如果用于了计算,索引也会失效;


当索引失效以后,如果想要强制使用索引:
hint: 
本质上就是一段注释,对于查询结果没有任何影响
参考:https://www.cnblogs.com/emilyyoucan/p/7844795.html
    /*+  */ :   +必须跟在*后面,而且中间连空格都不能有
    hint内容,必须跟在select,update,insert,delete关键字后面
    index : 表示建议使用索引,小括号里面先写表名(如果表名有别名,这里要写别名)
select /*+ index(emp 索引的名字) */ empno,ename,job,sal from emp where empno>2000;


*****************************************************************************************************
sql优化
--WHERE ENAME='SMITH'
WHERE aziduan='xxx' and b='ccc' and c='ddd'

1.    sql语句全部使用大写
2.    不要使用*来查询
3.    当需要写多个条件的时候,过滤掉数据最多的条件,应该放在sql的最右端
4.    =,<=与<,>相比较,>=,<=的效率会更高
5.    between...and...的效率比>,<的写法效率要高
6.    尽量避免使用in,any,distinct..这些关键字
7.    尽量避免使用否定性的条件,包括not等关键字
8.    尽量避免使用函数
9.    尽量减少使用联表查询,子查询等

10.当数据量比较高的时候,使用索引来提高查询的效率

11.尽量避免对索引列做运算

12.当一张表中列太多,或者数据量太大时,可以通过表的横向,纵向切割来提高效率

*******************************************************************************************
数据库设计:

三大范式:
参考:https://www.cnblogs.com/sxkio/p/15955665.html
第一范式:列不可再分
第二范式:加主键
第三范式:非主键字段,如果与当前主键无直接关联,而是与表中其他某个字段有关联,此时应该把这些字段单独分离成新的表

---------------------------------------------------------------------------------------------------

oracle的远程访问
开始菜单->net manager
实例选项和监听选项中,都有主机名和端口号
端口号默认为1521;
主机名默认为localhost(允许的值有四个:localhost,127.0.0.1,ip地址,计算机名)

也可以在路径下:D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN
记事本打开listener.ora和tnsnames.ora两个文件,修改其中的主机名

要想允许远程访问,需要把上述的主机名修改为ip地址或者是计算机名;修改之后,需要重新启动监听服务和实例服务;

oracle服务端准备ok之后,客户端开始访问:
客户端连接:
第一种方式:直接在database下,写IP地址/orcl方式,加上账号密码,完成连接;
第二种方式:建立远程连接服务
    a.开始菜单->net manager窗口:
        左上角,绿色的加号,创建远程服务;
    b.开始菜单->oracle安装目录->配置和移植工具->net configuration assistent
        本地网络服务名配置->...->下一步到完成;

**************************************************************************************************
oracle的优化:
1.sql优化
2.索引
3.分区

oracle服务端是如何执行一条sql的?
1.语句解析
    a.查询告诉缓存:检查缓存中,是否存在执行计划
    b.语句的合法性检查:检查sql语句的语法知否合规
    c.语义检查:检查表名,字段名是否正确
    d.获取对象解析锁:给表加锁,保证数据一致性;
    e.权限检查:检查是否拥有权限
    f.确定最优执行计划
2.语句执行
3.结果收集

************************************************************************************
执行计划
如何查看执行计划:
explain plan for sql语句;

select * from table(dbms_xplan.display);

operation中,原则上来说,缩进越多,越先执行(大部分时候,都是从下往上执行)

oracle在执行sql语句,选择执行计划的时候,有两种优化方式:
1.RBO:基于规则的优化方式
2.CBO: 基于代价的优化方式


全表扫描(table access full)
举例:查询所有的员工信息
explain plan for select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp;
select * from table(dbms_xplan.display);

通过ROWID的表存取(TABLE ACCESS BY USER ROWID)
explain plan for select * from emp where rowid='AAAR3sAAEAAAACXAAA';
select * from table(dbms_xplan.display);

索引扫描
索引扫描又分几种方式:
a.索引唯一扫描(INDEX UNIQUE SCAN)
explain plan for select empno,ename,job,sal from emp where empno=7369;
select * from table(dbms_xplan.display);

b.索引范围扫描(INDEX RANGE SCAN)
explain plan for select empno,ename,job,sal from emp where empno>2000;
select * from table(dbms_xplan.display);

empno本身是创建了索引的(PK_EMP),但是在查询中,把empno放到了函数里面,所以,此时查询的时候,索引会失效
explain plan for select empno,ename,job,sal from emp where substr(empno,1,4)>2000;
为了让索引生效,这里添加hint注释,再次运行的时候,这里的索引再次生效,不过这里已经是索引全扫描了
explain plan for select /*+ index(emp pk_emp)*/ empno,ename,job,sal from emp where substr(empno,1,4)>2000;

c.索引全扫描(INDEX FULL SCAN)

********************************************************************************************************************
上述举例都是单表的情况,如果是联表呢?


1.排序--合并连接(sort join--->merge join)
对于非等值连接,效率比较高
如果关联字段有索引,性能也会更好
explain plan for select e.empno,e.ename,e.job,e.sal,d.deptno,d.dname from emp e,dept d where e.deptno=d.deptno
select * from table(dbms_xplan.display);

2.嵌套循环(NESTED LOOPS)
适用于小表关联大表

需要先指明驱动表和被驱动表,一般以小表(数据量比较少的表)作为驱动表,以大表(数据量比较大的表)作为被驱动表;
驱动表,也叫外侧表;被驱动表,也叫内侧表;
先去查询驱动表中的数据,然后通过驱动表中每一行数据,去被驱动表中查找;

这里把d(dept)表作为驱动表
explain plan for select /*+ leading(d) use_nl(e) */ e.empno,e.ename,e.job,e.sal,d.deptno,d.dname from emp e,dept d where e.deptno=d.deptno
select * from table(dbms_xplan.display);

3.哈希连接(HASH JOIN OUTER)
用于等值连接
大表关联小表,效率更好;
大表关联大表,也能提高效率;
explain plan for select e.empno,e.ename,e.job,e.sal,d.deptno,d.dname from emp e left join dept d on e.deptno=d.deptno;
select * from table(dbms_xplan.display);

4.笛卡尔积

-----------------------------------------------------------------------------------------------------------------------------

表分区
分区必须在创建表的时候就分区;
表一旦创建完成,就不能进行分区了;

分区的方式:
1.范围分区
2.列表分区
3.散列分区
4.组合分区


1.范围分区
按照工资的范围,进行分区:
0-2000,第一分区
2001-4000,第二分区
4000以上,第三分区
create table emp(
    empno  number(8) primary key,
    ename  varchar2(50),
    job    varchar2(50),
    sal    number(8)
)
partition by range(sal)(
    partition firstpart values less than (2000),
    partition secondpart values less than (4000),
    partition threepart values less than (maxvalue)
);

查看表是否存在
select * from emp;

往表中添加数据
insert into emp values(1001,'zhangsan','助理',1500);
commit;
有了分区之后,增,删,改,查操作,与未分区之前,完全一致;

查询指定分区下的数据
select * from emp partition(firstpart);
此时可以查看到数据,确实存入了第一个分区

insert into emp values(1002,'lisi','程序员',3500);
commit;

数据存入了第二分区
select * from emp partition(firstpart);--没有1002的数据
select * from emp partition(secondpart);--有了1002的数据

insert into emp(empno,ename,job) values(1003,'wangwu','销售员');
commit;

select * from emp partition(firstpart);
select * from emp partition(secondpart);
当sal为空时,数据也分到了第三个分区中
select * from emp partition(threepart);


2.列表分区
创建用户表,表中有一个字段:岗位;
岗位的可能值有:程序员,销售员,助理,经理
存入数据的时候,按照岗位来进行分区

create table t_users(
    userid    number(8) primary key,
    username  varchar2(50),
    job       varchar2(50)
)
partition by list(job)
(
    partition pro_part values ('程序员'),
    partition sale_part values ('销售员'),
    partition help_part values ('助理'),
    partition manager_part values ('经理'),
    partition def_part values (default)
);

先检查表是否存在
select * from t_users;

添加数据
insert into t_users values(1001,'zhangsan','销售员');
commit;

查询指定分区下的数据:
select * from t_users partition(sale_part);

如果job为空呢?
insert into t_users(userid,username) values(1002,'lisi');
commit;

没有为空单独分区的时候,job为空的数据,会存入默认分区中
select * from t_users partition(def_part);

3.散列分区
create table dept(
    dno   number(8) primary key,
    dname varchar2(50)
)
partition by hash(dno)
(
    partition fp,
    partition sp,
    partition tp
);

insert into dept values(10,'销售部');
insert into dept values(20,'开发部');
insert into dept values(30,'人事部');

select * from dept partition(tp);

4.组合分区
创建订单表,有订单创建时间,订单状态
先按照订单创建时间,做父分区,范围分区;
再按照订单状态,做子分区
订单状态:0-未支付,1-已支付,2-已到货

create table t_order(
    orderid   number(8) primary key,
    userid    number(8),
    shopid    number(8),
    total_money  number(8,2),
    create_time date,
    order_status  varchar2(10)
)
partition by range(create_time)
subpartition by list(order_status)
(
    partition p1 values less than (to_date('2022-03-01','yyyy-mm-dd'))
    (
        subpartition p1_sub1 values ('0'),
        subpartition p1_sub2 values ('1'),
        subpartition p1_sub3 values ('2'),
        subpartition p1_sub4 values (default)
    ),
    partition p2 values less than (to_date('2022-06-01','yyyy-mm-dd'))
    (
        subpartition p2_sub1 values ('0'),
        subpartition p2_sub2 values ('1'),
        subpartition p2_sub3 values ('2'),
        subpartition p2_sub4 values (default)
    ),
    partition p3 values less than (maxvalue)
    (
        subpartition p3_sub1 values ('0'),
        subpartition p3_sub2 values ('1'),
        subpartition p3_sub3 values ('2'),
        subpartition p3_sub4 values (default)
    )
);

对于分区:
在现有分区的基础上,可以新增一个分区,也可以删除一个现有的分区;
如果现在只有一个分区了,那么这个分区不允许被删除;

可以针对表的全局(所有分区)创建索引,此时的索引针对所有分区都有效;
也可以只针对某一个分区来创建索引,此时索引只针对这一个分区有效,其他分区里面,该所以无效;这种情况下,如果删除该分区下的索引,其他分区不受影响;

视觉检测在激光打码字符检测上的检测案例 在机器视觉检测技术中,OCR识别是比较典型的应用,应用的场景也比较丰富,基本上在制造业,每个工厂或者印刷厂都会用到视觉OCR识别检测,OCR字符识别的原理很简单,通过图像分割后,对字符进行学习、命名。在工业相机拍摄图像后,软件进行处理,从而读取结果。 随着技术的发展,激光打标技术被更多的应用在生产过程中,由激光打标代替油墨进行字符印刷,速度更快、效果更好。 但是随之而来的是在视觉检测上带来的影响,目前市面上应用的字符检测设备大多是由集成商单独开发的软件,在检测油墨印刷时,图像上的字符没有断点,非常连贯,所需 阅读详情

相关推荐

手把手教你用OPA运放和MOS管搭建恒流源电路(附完整电路图)

本文详细介绍了如何使用OPA运放和MOS管搭建高精度恒流源电路,涵盖核心元器件选型、电路设计、工作原理及实际搭建步骤。通过负反馈控制机制和MOS管工作区设置技巧,实现稳定的电流输出,适用于LED驱动、电池充电等场景。附完整电路图和调试技巧,助您快速掌握恒流源设计。

weixin_29239279的博客 541

8、权限模型RABC建表SQL

权限模型RABC建表SQL。

Java__EE小白成长之路 510

ABB机器人绝对精度实战:从焊接路径优化到TCP控制(附配置步骤)

本文深入探讨了ABB机器人绝对精度在焊接路径优化中的核心价值。通过对比重复定位精度,阐明绝对精度如何补偿机械误差,确保TCP在整个运动路径上的轨迹精度。文章提供了从示教器激活绝对精度功能的详细配置步骤,并分享了针对焊接抖动和实现0.2mm路径精度的进阶调优技巧,包括TCP标定、伺服参数优化与系统维护。

weixin_29053073的博客 352

用一条sql查询出菜单数以及菜单对应的角色关系

前几天公司要求将系统菜单树以及菜单对应的角色关系列出来做调整,所以写了如下SQL供参考 select TT.T1 一级菜单, TT.T2 二级菜单, TT.T3 三级菜单, TT.T4 四级菜单, group_concat(rel.role_code) 菜单角色 from (select m1.menu_name T1, m2.menu_name T2, m3.menu_name T3, ...

留下的兵 4292

Aras Innovator系统配置-01对象类(一)

对象类配置-对象类属性说明

企业信息化(PLM,ERP.MES) 2032

从SolidWorks到Simulink:手把手教你用URDF文件搭建六轴机械臂仿真模型(含STL文件配置避坑)

本文详细介绍了从SolidWorks到Simulink的六轴机械臂URDF仿真全流程,包括URDF文件导出、Simscape模型生成与调试、动力学参数获取与验证等关键步骤。重点解决了STL文件配置、关节接口设置等工程化难题,帮助开发者高效构建可控制的数字孪生体。通过实战案例和优化技巧,提升机械臂仿真效率与准确性。

weixin_26812607的博客 267

7.用户、角色、菜单表SQL

【代码】7.用户、角色、菜单表SQL。

卷土的博客 709

如何在R中高效安装ropls及其依赖包

本文详细介绍了在R语言中高效安装ropls包及其依赖的完整流程。作为Bioconductor生物信息学分析包,ropls的安装需通过BiocManager管理器进行。文章提供了标准安装步骤、跨系统避坑指南及安装后验证方法,帮助用户解决R版本、编译环境和网络镜像等常见问题,确保代谢组学数据分析工具顺利部署。

efc123456的博客 908

用户权限管理模块【表结构及SQL语句】

tb_user:用户帐户信息表 列名 数据类型 允许空 说明 UserName nvarchar(128) N 用户ID Password nvarchar(128) N 登录名,用户Email Email nvarchar(100) Y 密码 Question nvarchar(100) Y 重置密码的问题

【小冯子】的专栏 1万+

多摄像头同步技术:帧同步信号在Sensor与解串器间的传递机制

本文深入探讨了多摄像头系统中帧同步信号的两种核心传递机制:由解串器统一发号施令或由主Sensor作为“带头大哥”。文章对比了两种方案在同步精度、硬件复杂度、成本及适用场景上的差异,并提供了实战配置要点与调试心法,为车载环视、ADAS及工业检测等应用提供关键的技术选型与实施指导。

weixin_29193359的博客 435

大数据领域数据产品的团队激励与绩效管理

在大数据领域,数据产品的成功离不开高效协作的团队。团队激励与绩效管理的目的在于激发团队成员的工作热情和创造力,提高工作效率和质量,确保数据产品能够按时、高质量地交付。本文章的范围涵盖了大数据领域数据产品团队激励与绩效管理的各个方面,包括激励机制的设计、绩效评估的方法、团队沟通与协作等。本文将按照以下结构进行阐述:首先介绍核心概念与联系,明确相关概念的定义和相互关系;接着讲解核心算法原理和具体操作步骤,为团队激励与绩效管理提供理论支持和实践指导;然后分析数学模型和公式,帮助读者深入理解绩效评估的原理;

Java大师兄的博客 1018

菜单权限表sql语句

select m.*          from t_menu m         where m.state = '1'           and ((menu_type = 1 and exists                (select 1                    from v_user_menu b                   where m.menu_id ...

哮天犬的博客 2892

r3live 使用前提 雷达-相机外参标定 livox_camera_lidar_calibration

港科大livox_camera_calib虽然操作方便,但是使用mid360雷达会有视角问题(投影三维点到相机),尝试了很多场景,标定效果都不理想(推荐场景是楼梯间),看来港大的更适合avia之类窄角度的雷达。如果标定效果不好的话,就使用 getExt2节点,getExt1节点只优化外参,而getExt2节点在计算的时候会将一开始计算的内参作为初值和外参一起优化。一般使用getExt1节点即可,如果在外参初值验证过,并且异常值已经剔除后,优化还是有较大的残差,那么可以使用getExt2试一试。

z1872385的博客 2401

MySQL 优化之SQL和索引的优化

文章目录前言一.索引的执行分析二.索引失败三.SQL和索引的优化1) 慢查询日志(很重要)2) 查看磁盘I/O读写的数据量3) show status四.优化总结 前言 “索引什么时候会用到?” “索引什么时候会失效?” “索引是不是创建的越多越好?” “索引的底层实现是什么?” “多表联合查询怎么查?” “你做过哪些SQL和索引的优化?” 一.索引的执行分析 先来看看,一般我们做单表查询和多表联...

Nonpc的博客 5662

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

MySQL 索引及SQL优化

MySQL 索引设计及失效情况,SQL优化

青竹暖回阳的博客 2322

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Sql(sql语句优化,索引设计优化)

Sql(sql语句优化,索引设计优化)

轻言细语莫泪痕 1955

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

MySql数据库优化之SQL和索引的优化

索引的优化是面试中数据库部分可以说是必问的问题,这个和平时的积累有关。本文详细介绍了SQL和索引的优化。

李志杰的博客 3581

SQL的索引优化

SQL索引优化 1、什么是索引 索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。 数据库使用索引以找到特定值,然后顺指针找到包含该值的行。在表中建立索引,然后在索引中找到符合查询条件的索引值,最后通过保存在索引中的ROWID(相当于页码)快速找到表中对应的记录。索引的建立是表中比较有指向性的字段,相当于目录,比如说行政区域代码,同一个地域的行政区域代码都是相同的,那么给这一列加...

weixin_44455388的博客 2063

MySQL SQL和索引优化总结

文章目录一、SQL语句和索引的优化二、应用优化三、MySQL Server优化1. 自适应哈希索引2. redo log3. MySQL查询缓存4. MySQL线程缓存5. 并发连接数量和超时时间 首先我们需要知道MySQL主要是从以下3个方面进行优化: SQL语句和索引 应用优化(引入缓存、连接池) 配置参数优化 一、SQL语句和索引的优化 当数据量比较大,若SQL语句写的不合适,会导致SQL的执行效率低,我们需要等待很长时间才能拿到结果 针对性优化的时候,若数据量太大,可通过limit分页 exp

长期更新自学笔记 4759

SQL的索引以及优化

我们不管在写代码,或者对执行数据库操作的时候,SQL优化是不可缺少的一环。所以这个功能至关重要。下面我们来说说SQL语句优化: 定位慢查询 show status like 'connections' ------------------------当有多少客户端连接数据库 show status like 'slow_queries'----------------------查询有多少......

wszhm123的博客 3279

SQL 建立索引及优化索引

CREATE INDEX mycolumn_index ON mytable (myclumn)这个语句建立了一个名为mycolumn_index的索引。你可以给一个索引起任何名字,但你应该在索引名中包含所索引的字段名,这对你将来弄清楚建立该索引的意图是有帮助的。注意:在本书中你执行任何SQL语句,都会收到如下的信息:This command did not return data,and it

林子的博客 3642

索引与sql的优化

(2)主键顺序插入:因为innodb类型的表是按照主键的顺序存储的,所以导入的数据按照主键的顺序排列,可以有效的提高导入数据的效率,如果innoDB表没有主键,那么系统会自动默认创建一个内部列作为主键,所以如果可以给表创建一个主键,将可以利用主键顺序插入以提高导入数据的效率;尽量减少额外排序,通过索引直接返回数据,where条件和order by 使用相同的索引,并且order by的顺序和索引的顺序相同,且order by的字段要么都是升序,要么都是降序。如果没有索引,则应该考虑增加索引;...

m0_71467744的博客 1758

MySQL之索引和SQL优化

索引 (index)是高效获取数据的数据结构。MySQL 的索引是在存储引擎层实现的,不同的存储引擎有不同的结构,MySQL5.6后的默认引擎是InnoDB;MySQL索引数据结构对经典的B+Tree进行了优化。在原B+Tree的基础上,增加一个指向相邻叶子节点的链表指针,就形成了带有顺序指针的B+Tree,提高区间访问的性能。叶节点形成双向链表。为什么InnoDB存储引擎选择使用B+tree索引结构?相对于二叉树,层级更少,搜索效率高;...

X18160013的博客 636

SQL学习之索引(优化)

当IN的参数是子查询时,数据库首先会执行子查询,然后将结果存储在一张临时的工作表里(内联视图:内联视图是 SQL 查询中的一个概念,它允许您在查询中嵌套另一个查询作为一个临时的虚拟表),然后扫描整个视图。聚簇索引:按照数据的物理顺序进行排序的索引,在一个表中只能有一个聚簇索引,因此他 决定了数据在磁盘上的存储方式。不适合的索引,或者过多的索引,都会降低插入、修改和删除数据的效率。高维数据和复杂查询的限制:对于高维数据和复杂查询,传统的索引可能无法提供良好的性能。

weixin_46653974的博客 1524

索引 sql优化

索引,简单的sql优化

java_master555的博客 1009

MySQL2——索引原理和SQL优化

本文讲述了mysql的InnoDB存储引擎的索引存储原理、索引匹配原则以及SQL的优化等。

leedcanDD的博客 942
上一篇: 全量和增量
下一篇: sql子查询超经典例题:--连续3天登录的用户筛选
好好羊
博客等级 码龄5年 5粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

好好羊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值