精华内容
下载资源
问答
  • 索引 同义 多表关联

    千次阅读 2012-04-06 16:46:41
    1.数据量很大并且经常变动的表上的索引不易过多,过量的索引会导致插入、更新和删除操作变慢,产生大量的IO,如果一张表上的索引超过8个,就需要检查是否这些索引都必要的。(但是要值得注意的这条原则很可能被...

    1.11       为什么建索引,建索引时要注意什么。

    答:为了加快查询速度,提高检索效率。

    注意:

    1.数据量很大并且经常变动的表上的索引不易过多,过量的索引会导致插入、更新和删除操作变慢,产生大量的IO,如果一张表上的索引超过8个,就需要检查是否这些索引都是必要的。(但是要值得注意的是这条原则很可能被过度的夸大。因为绝大多数OLTP系统,写操作不足10%,绝大多数的操作是读。因此如果是设计的合理,并不能说一张表上的索引超过多少就是不合理的)

    2.如果索引数量过多,建议删除部分所有的列都建有独立索引的复合索引,复合查询操作可以通过使用两个独立列的索引结果集合并来获取,也可以保障查询效率

    3.小表不要建立索引,可能通过索引访问速度更慢,把小表放入KEEP 池效率更高

    4.索引的PCTFREEINITTRANSMAXTRANS参数设置十分重要,特别是对于变化十分大的索引

    5.对于比较大的索引,使用索引分区会改善效率

    6.位图索引对于列表类值的效果较好(索引大小也比较小),但是位图索引不适合变化十分频繁的表。基数是位图索引中的一个基本的定义,它是指数据库表中某个字段内容中不重复的数值。如在员工信息表中的性别字段,一般就只有男跟女两个值,所以,其基数为2;婚姻状况字段的话,则其只有已婚、未婚、离婚三种状态,其基数就为3;民族一览内也是只有有限的几个值。

    7.使用函数索引可以避免大量不必要的全表扫描

    8.如果索引包含了查询需要的所有信息,查询就不需要访问表的数据,可以大大提高访问效率,因此要注意建立合理的复合索引,并注意SQL语句的合理性

    9.用好索引组织表

    10.可以使用反转索键值索引来消除索引相关的热块

    11.随着数据的变化,索引的效率会下降,因此定期重建索引对于性能提升有很大帮助

    l2.使用CBO优化器的情况下,保证表和索引的数据得到了良好的分析是保证优化器选择最佳执行计划的关键

    13.删除所有不必要的索引。ORACLE 9i提供的新特性可以使DBA能够跟踪索引的使用情况,用这个功能找到不使用的索引,并把这些索引删除

    14.对于一些数据仓库或者决策型数据库系统,其主要用来进行查询。相关的记录往往是在数据库初始化的时候倒入。此时,设置的索引多一点,可以提高数据库的查询性能。同时因为记录不怎么更新,所以索引比较多的情况下,也不会影响到更新的速度。即使在起初的时候需要导入大量的数据,此时也可以先将索引禁用掉。等到数据导入完毕后,再启用索引。可以通过这种方式来减少索引对数据更新的影响。相反,如果那些表中经常需要更新记录,如一些事务型的应用系统,数据更新操作是家常便饭的事情。此时如果在一张表中建立过多的索引,则会影响到更新的速度。

    15.如对于一些重复内容比较少的列,特别是对于那些定义了唯一约束的列。在这些列上建立索引,往往可以起到非常不错的效果。如对于一些null值的列与非Null值的列混合情况下,如果用户需要经常查询所有的非Null值记录的列,则最好为其设置索引。如果经常需要多表连接查询,在用与连接的列上设置索引可以达到事半功倍的效果。

    16.通常来说,表的索引越多,其查询的速度也就越快。但是,表的更新速度则会降低。这主要是因为表的更新(如往表中插入一条记录)速度,反而随着索引的增加而增加。这主要是因为,在更新记录的同时需要更新相关的索引信息。为此,到底在表中创建多少索引合适,就需要在这个更新速度与查询速度之间取得一个均衡点。

    1.12       查询时没有用到索引有哪几种原因

    1、检查被索引的列或组合索引的首列是否出现在PL/SQL语句的WHERE子句中,这是执行计划能用到相关索引的必要条件。

    2、看采用了哪种类型的连接方式。ORACLE的共有Sort Merge JoinSMJ)、Hash JoinHJ)和Nested Loop JoinNL)。在两张表连接,且内表的目标列上建有索引时,只有Nested Loop才能有效地利用到该索引。SMJ即使相关列上建有索引,最多只能因索引的存在,避免数据排序过程。HJ由于须做HASH运算,索引的存在对数据查询速度几乎没有影响。

    3、看连接顺序是否允许使用相关索引。假设表empdeptno列上有索引,表dept的列deptno上无索引,WHERE语句有emp.deptno=dept.deptno条件。在做NL连接时,emp做为外表,先被访问,由于连接机制原因,外表的数据访问方式是全表扫描,emp.deptno上的索引显然是用不上,最多在其上做索引全扫描或索引快速全扫描。

    4、是否用到系统数据字典表或视图。由于系统数据字典表都未被分析过,可能导致极差的执行计划。但是不要擅自对数据字典表做分析,否则可能导致死锁,或系统性能下降。

    5、索引列是否函数的参数。如是,索引在查询时用不上。

    6、是否存在潜在的数据类型转换。如将字符型数据与数值型数据比较,ORACLE会自动将字符型用to_number()函数进行转换,从而导致上一种现象的发生。

    7、是否为表和相关的索引搜集足够的统计数据。对数据经常有增、删、改的表最好定期对表和索引进行分

    析,可用SQL语句“analyze table xxxx compute statistics for all indexes;”ORACLE掌握了充分反映实际的统计数据,才有可能做出正确的选择。

    8、索引列的选择性不高。

      我们假设典型情况,有表emp,共有一百万行数据,但其中的emp.deptno列,数据只有4种不同的值,如10203040。虽然emp数据行有很多,ORACLE缺省认定表中列的值是在所有数据行均匀分布的,也就是说每种deptno值各有25万数据行与之对应。假设SQL搜索条件DEPTNO=10,利用deptno列上的索引进行数据搜

    索效率,往往不比全表扫描的高。

    9、索引列值是否可为空(NULL)。如果索引列值可以是空值,在SQL语句中那些要返回NULL值的操作,将不会用到索引,如COUNT*),而是用全表扫描。这是因为索引中存储值不能为全空。

    10、看是否有用到并行查询(PQO)。并行查询将不会用到索引。

    11、如果从以上几个方面都查不出原因的话,我们只好用采用在语句中加hint的方式强制ORACLE使用最优的

    执行计划

      hint采用注释的方式,有行注释和段注释两种方式。

      如我们想要用到A表的IND_COL1索引的话,可采用以下方式:

      “SELECT /*+ INDEXA IND_COL1*/ * FROM A WHERE COL1 = XXX;"

    1.13       包分那几部分,并简单介绍下作用。

    答:包由包头和包体两部分组成。

    包头实际上是包与应用程序之间的接口,它用于定义包的公用组件,包括常量,变量,游标,过程和函数等。在保规范中所定义的公共组件不仅可以在包内引用,而且也可以由其他的子程序引用。

    包体用于实现包头所定义的过程和函数。当建立包体时可以单独定义私有组件包括变量,常量,过程,函数等,但在包体中所定义的私有组件只能在包内使用。而不能由其他子程序引用。

    1.14       同义词的优点是什么

    答:

    1.可以隐藏对象的名字及其持有者。

    2.可以简化sql语句

    3.为分布式数据库的远程对象提供位置透明性。

    1.15       查询时表的常见的关联方式有哪几种,在什么情况下用什么样的关联方式最好

    答:嵌套循环连接(NESTED LOOP JOIN):适用于数据子集较小的情况

        排序合并连接(SORT MERGE JOIN:用在没有索引,并且数据已经排序的情况.

        哈希连接(HASH JOIN):适用于较小的表完全可以防御内存的情况

    展开全文
  • 关联是什么?估计很多人都不是很清楚这两者到底代表什么。如果要了解云计算和大数据的意思和关系,那我们就要先对这两个进行了解,分别了解两者是什么意思。 云计算是什么? 云计算狭义上的意思:“云”实质上...

    云计算是什么?大数据是什么?他们有什么区别?关联又是什么?估计很多人都不是很清楚这两者到底代表什么。如果要了解云计算和大数据的意思和关系,那我们就要先对这两个词进行了解,分别了解两者是什么意思。

    云计算是什么?

    云计算狭义上的意思:“云”实质上就是一个网络,狭义上讲,云计算就是一种提供资源的网络,使用者可以随时获取“云”上的资源,按需求量使用,并且可以看成是无限扩展的,只要按使用量付费就可以,“云”就像自来水厂一样,我们可以随时接水,并且不限量,按照自己家的用水量,付费给自来水厂就可以。
    云计算广义上的意思:云计算是与信息技术、软件、互联网相关的一种服务,这种计算资源共享池叫做“云”,云计算把许多计算资源集合起来,通过软件实现自动化管理,只需要很少的人参与,就能让资源被快速提供。也就是说,计算能力作为一种商品,可以在互联网上流通,就像水、电、煤气一样,可以方便地取用,且价格较为低廉。
    云计算通俗理解:通过互联网提供全球用户计算力、存储服务,为互联网信息处理提供硬件基础。云计算,简单说就是把你自己电脑里的或者公司服务器上的硬盘、CPU都放到网上,统一动态调用。

    大数据是什么?

    大数据的定义(麦肯锡全球研究所给出):一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征。
    大数据的定义(研究机构Gartner给出):“大数据”是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力来适应海量、高增长率和多样化的信息资产。
    大数据通俗理解:运用日趋成熟的云计算技术从浩瀚的互联网信息海洋中获得有价值的信息进行信息归纳、检索、整合,为互联网信息处理提供软件基础。大数据,简单说,就是把所有的数据放到一起分析,找到关联,实现预测。这里的所有数据对应的是之前的抽样调研取得的部分数据。

    云计算和大数据的区别与关系

    云计算和大数据的区别:云计算注重资源分配,是硬件资源的虚拟化;而大数据是海量数据的高效处理。大数据与云计算之间并非独立概念,而是关系非比寻常,无论在资源的需求上还是在资源的再处理上,都需要二者共同运用。
    云计算和大数据的关系:云计算是基础,没有云计算,无法实现大数据存储与计算。大数据是应用,没有大数据,云计算就缺少了目标与价值。两者都需要人工智能的参与,人工智能是互联网信息系统有序化后的一种商业智能。
    而商业智能(即BI,国内典型代表BI厂商为亿信华辰)中的智能从何而来?方法之一就是通过大数据这个工具来对大量数据进行处理,从而得出一些关联性的结论,从这些关联性中来获得答案,因此,大数据是商业智能的一种工具。 而大数据要分析大量的数据,这对于系统的计算能力和处理能力要求是非常高的,传统的方式是需要一个超级计算机来进行处理,但这样就导致了计算能力空的时候闲着、忙的时候又不够的问题, 而云计算的弹性扩展和水平扩展的模式很适合计算能力按需调用,因此,云计算为大数据提供了计算能力和资源等物质基础。

    展开全文
  • 相似度计算的方法是什么? 详见 #64 Authors Hai Liang Wang Hu Ying Xi Give credits to Word2vec by Google Wikimedia: 训练语料来源 gensim: word2vec.py SentenceSim: 相似度评测语料 jieba: 中文分词 ...
  • 现当代社会,品牌这个也常常被人提起,小到一张纸,大到一套房,都能看出人们对某一个品牌的钟爱。 一个企业是否有知名度,从与之关联的企业品牌是否家喻户晓便可看出。那么何为企业品牌呢? 【企业品牌】 企业...

    在这里插入图片描述

    ”品牌”的英文单词Brand,源出古挪威文Brandr,意思是"烧灼"。人们用这种方式来标记家畜等需要与其内他人相区别的私有财产。现当代社会,品牌这个词也常常被人提起,小到一张纸,大到一套房,都能看出人们对某一个品牌的钟爱。

    一个企业是否有知名度,从与之关联的企业品牌是否家喻户晓便可看出。那么何为企业品牌呢?

    【企业品牌】

    企业品牌是指以企业名称为品牌名称的品牌。传达的是企业的经营理念、企业文化、企业价值观念及对消费者的态度等,能有效突破地域之间的壁垒,进行跨地区的经营活动。并且为各个差异性很大的楼盘之间提供了一个统一的形象,统一的承诺,使不同的产品之间形成关联,统合了产品品牌的资源。

    企业树立良好的品牌形象能带来诸多好处,产生优质连环效应。

    1.增强企业凝聚力,提高团队荣誉感,从而建立员工对企业的认同感与归属感。

    2.扩散企业的辐射力度,将企业价值,企业文化传播,获得消费者认同感。

    3.提高企业知名度,加强了核心竞争历建设。让更多人闻名便知晓企业,信赖企业。

    4.直接具备商业价值。不仅仅停留在美化形象方面,以优质品牌形象吸引投资,为企业赋能,企业能越走越远。

    对企业而言,品牌的口碑是市场和消费者对企业质量的认可,品牌意识的苏醒,漫天的广告无处不在强调品牌存在的意义,因此,建立好品牌就为企业赢得了市场先机,为竞争打下了坚固的基石。

    那么又如何建设企业品牌,让人一眼记住?专业事交给专业的人做,营销SaaS是专业成熟的系统,致力于为企业量身定做个性形象,抢占市场份额,实现全网曝光。

    在这里插入图片描述

    看看营销SaaS是如何让客户找到企业,记住企业,,信任企业?

    01

    搭建品牌官网,个性输出文化

    在这里插入图片描述

    「昆山家铭」官网

    根据企业特色,融合企业文化,为其建设一个极具个性的官网,展示公司信息,输送文化价值。客户可随时浏览,与客服沟通,网站不仅是企业形象的代表,也成了营销的传播工具。赋予网站营销的功能,留住潜在客户。

    02

    搜索引擎优化,客户轻松找到企业

    在这里插入图片描述

    「陕西红船实业」官网百度排名-首页第二名

    站内站外同步优化,一次投入,享受长久推广红利,将流量源源不断输送,定期查看分析各项数据,分析优化方向,进行优化调整,针对获客线索及时进行跟进,提高转化。各大媒体平台,一键分享,不放过任何获客的渠道。旨在让客户多渠道,全方位看到企业,形成印象。

    03

    全员营销,全网曝光

    在这里插入图片描述

    客户和企业之间直接沟通,虽然快速,但是信任度不够强,若是通过自己的朋友或亲人了解到企业,这其中的信任感大大增加,成交的可能性也大大提高。员工将营销物料选择习惯的平台进行发布,便起到了这样的效果。既是获客的新通道,也提高了员工对企业的认同,有助于企业凝集力的集中。

    展开全文
  • 相似度计算的方法是什么? 详见 #64 Authors Hai Liang Wang Hu Ying Xi Give credits to Word2vec by Google Wikimedia: 训练语料来源 gensim: word2vec.py SentenceSim: 相似度评测语料 jieba: 中文分词 ...
  • 我们在使用python开发的过程中时常听到GIL这个并且发现这个经常和Python无法高效的实现多线程关联在一起,关于python多线程的实现在前面的文章已经介绍过,本文我们主要来了解一下GIL到底是什么?为什么会影响...

    前言

    我们在使用python开发的过程中时常听到GIL这个词,并且发现这个词经常和Python无法高效的实现多线程关联在一起,关于python多线程的实现在前面的文章已经介绍过,本文我们主要来了解一下GIL到底是什么?为什么会影响python的多线程。

     

    一、什么是GIL

    GIL全称Global Interpreter Lock,官方给出的解释如下:

    In CPython, the global interpreter lock, or GIL, is a mutex that prevents 
    multiple native threads from executing Python bytecodes at once. This lock 
    is necessary mainly because CPython’s memory management is not thread-safe.
    (However, since the GIL exists, other features have grown to depend on the
    guarantees that it enforces.)

    我们知道,和PHP一样,Python也是一门脚本语言,它的特点就是一边解释一边执行。既然不是编译型语言,那么就需要解析器来解析和执行。Python的执行环境,可用的解析器有很多种,例如CPython、JPython、IronPython等等,其中我们最为常用的、也同时是python安装时默认的解析器就是CPython。所以要明确一点,GIL并不是Python本身自带的特性,而是CPython解析器所采用的一种解析方案

    现在的许多编程语言,为了更有效的利用多核处理器的性能,就出现了多线程的编程方式,脚本语言很多都不能支持多线程,例如PHP,但是Python为了利用多核,Python开始支持多线程。而使用多线程随之而来的就是线程间数据一致性和状态同步的问题。我们通常在解决多线程之间数据完整性和状态同步的方法就是给线程加锁,像Java、C++等编译型语言通常都需要程序员自己手动添加和释放线程锁。而Python语言在设计时为了追求简易性和便利性,就设计了GIL这个全局的锁。如官方所说,GIL是一把全局排他锁,而后面很多Python库都严重依赖GIL,导致不能随意修改源码,这便是GIL的来源。

     

    二、GIL对多线程的影响

    尽管Python完全支持多线程编程, 但是CPython解释器的实现部分在完全并行执行时并不是线程安全的。 实际上,这时候解释器被GIL保护着,它确保任何时候都只有一个Python线程执行GIL最大的问题就是Python的多线程程序并不能利用多核CPU的优势,甚至就几乎等于Python是个单线程的程序(Python里面只有多进程才能利用到多核,而Java等编译型语言多线程就能利用多核资源)。

    在这里有一点要强调的是GIL只会影响到那些严重依赖CPU的程序(比如计算型的)。 如果你的程序大部分只会涉及到I/O,比如网络交互,那么使用Python多线程就很合适, 因为它们大部分时间都在等待,而GIL在程序进入I/O操作等待时是可以释放的

    所以需要注意的是,并不是所有的多线程就能提高程序的运行效率。比如当你使用一个计算密集型的线程去管理图形计算界面,又开了很多别的线程去进行异步I/O操作,那么这个计算密集型的线程会长时间持有GIL,而那些别的进程就只能等待,期间还有线程的创建和管理的性能损耗,总的来说反而性能更差了。

                                                                                    图片来源于网络

     

    三、如何避免GIL的影响

    为了利用多核资源,又能避免GIL对多线程性能的影响,这里介绍一下Python社区现有的解决方案:

    1、使用C扩展

    这种方案的主要思想是将计算密集型任务转移给C,跟Python独立,在工作的时候在C代码中释放GIL。这样在计算密集的时候程序执行速度也会提升的很快。例如你要操作数组,那么使用NumPy这样的扩展会非常的高效。但是同样带来不好的问题就是python需要依赖很多C扩展,丧失了一部分简单易用的特性。

    2、使用multiprocessing库实现多进程

    Python的多线程虽然是单核多线程,但是多进程却是可以真正利用多核资源的,多个Python进程有各自独立的GIL锁,互不影响。

    为了弥补thread库因为GIL而低效的缺陷,出现了multiprocessing库。它完整的复制了一套thread所提供的接口方便迁移。唯一的不同就是它使用了多进程而不是多线程。当一个线程想要执行CPU密集型工作时,会将任务发给进程池。 然后进程池会在另外一个进程中启动一个单独的Python解释器来工作,这时候原本的线程相当于执行I/O操作,当线程等待I/O结果的时候会释放GIL。

    这种方式也有缺陷,当混合使用线程和进程池的时候会增加程序实现时线程间数据通讯和同步的困难。所以最好在程序启动时,创建任何线程之前先创建一个单例的进程池。 然后线程使用同样的进程池来进行它们的计算密集型工作。

    3、使用其他解析器

    像JPython等解析器,不需要GIL的帮助。但是由于这类是采用Java或C#等语言用于解析器实现,他们也失去了利用社区众多C语言模块有用特性的机会,许多C扩展的库无法使用。关于其他解析器,也可以了解下PyPy。

     

    四、总结归纳

    Python GIL其实是历史遗留问题,跟我们常常做算法是要舍弃空间还是舍弃时间是一个道理,是性能与python简便性之间权衡后的产物:

    1、具有很多CPU计算密集型的程序,GIL只能让多线程以当个线程的形式运行,效率低下;

    2、如果只是I/O密集型的操作,多线程能在一定程度上提升程序效率;

    3、使用并行程序时为了避免GIL的影响,可以使用多进程、C扩展等等方式解决。

    参考链接:http://cenalulu.github.io/python/gil-in-python/

    展开全文
  • 对于phrasequery,顾名思义短语查询,更符合“搜索用语”特征,输入的是什么就搜索什么,只过滤停用、非term,信息损失相对较少,同时保留term之间关联关系。当然有扩展那就是“智能”了。phrasequery既然是分词...
  • 上面我们已经简要的讲述了一些XML的基本原理,我们来看看它们之间的关联以及它们如何工作的,先看这里一张图: 1.XML描述数据类型。例如:"King lear"一个标题元素; 2.CSS储存并控制元素的显示样式。例如...
  • 一、字典示例什么是字典?把相关信息关联起来的数据结构。例如通过查汉语字典找到某个字、的含义,字与他们的含义就是一种相关信息。Python字典用大括号({})括起来,逗号(,)分隔元素。通过汉语字典引申:...
  • 前言在做用户 query 理解的过程中,有许多需要使用词典来...在计算机科学中,trie,又称前缀树或字典树,一种有序树,用于保存关联数组,其中的键通常字符串。与二叉查找树不同,键不是直接保存在节点中,而...
  • 浅谈职场内卷

    2021-02-23 17:04:36
    内卷是什么 内卷化(Involution)与“进化”(Evolution)一相对,指在社会发展某一阶段到一种确定形势后,出现的一种停滞不前的现象。某种意义上来说,内卷化实际上是发展的一种“瓶颈”状态。今天我们讨论在...
  • 回忆一下,你作动作设计的时候有没有考虑到以上相关因素,或者在研究动作的时候~不管有没有我先来介绍一下这些属性究竟代表的是什么,与动作设计又有什么样的关联. ■设计要靠创意,动作设计同样要靠创意 动作的姿势...
  • 什么是 GenoPro?GenoPro 最直观,最完整的家谱和基因图创建工具。GenoPro 一个家谱软件,包含有关关系和个人的其他信息。 医学家,家庭治疗师,系谱学家,社会学家,社会工作者,研究人员以及任何有兴趣发现家庭...
  • 黑客(hacker)实际褒义,维基百科的解释喜欢用智力通过创造性方法来挑战脑力极限的人,特别他们所感兴趣的领域,例如软件编程或电气工程。个人电脑、软件和互联网等划时代的产品都黑客创造出来的,如...
  • 黑客(hacker)实际褒义,维基百科的解释喜欢用智力通过创造性方法来挑战脑力极限的人,特别他们所感兴趣的领域,例如软件编程或电气工程。个人电脑、软件和互联网等划时代的产品都黑客创造出来的,如...
  • 原因很简单,Oracle给一个参数一个默认值让它最大限度地适用于每个数据库,所以它几乎最优的,当然,绝对有个别数据库需要适当调整,但我认为那个例,并且,很多时候,修改这些参数的人,他们修改的理由并不是...
  • 虽然直到目前 B3log 系产品用户不多,但我们已经初步证明了:Java 用来实现博客、论坛没有什么不好的 使用开源软件,了解开源思想,融入开源生态 如果你想做个程序员相关的论坛,请三思 你怎么看待社群、社区这...
  • 区块链环境安装

    2021-05-12 14:31:11
    区块链(Blockchain),比特币的一个重要概念,它本质上一个去中心化的数据库,同时作为比特币的底层技术,一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证...
  • 什么是信息架构策略? 284 遭到抨击的策略 285 从研究到策略 287 策略的开发 287 思考 288 表述 288 沟通 289 测试 289 工作产品和可交付成果 291 隐喻探索 291 场景 293 案例研究和故事 294 概念图表 295 站点地图...
  • loadrunner测试资料

    2010-03-21 16:51:02
    本文介绍了几个比较典型的服务器评测软件,无论什么评测工具,基本的技术都利用线程技术模仿和虚拟用户,在这里主要的难点在于测试脚本的编写,每种工具使用的脚本都不一样,但是大多数工具都提供录制功能就算...
  • 软件工程知识点

    2012-12-02 21:34:25
    软件定义是软件项目的早期阶段,主要由软件系统分析人员和用户合作,针对有待开发的软件系统进行分析、规划和规格描述,确定软件是什么,为今后的软件开发做准备。这个时期往往需要分阶段地进行以下几项工作。 1....
  • 软件工程教程

    热门讨论 2012-07-06 23:10:29
    问:开发这个软件目标是什么? 答: 提高用户对音乐的学习和娱乐 参与创作音乐 项目背景--钢琴练奏师 问:为什么传统音乐程序不好? 答: 传统音乐程序功能单一,容易令人感到枯燥无味,没有吸引力; 传统音乐...

空空如也

空空如也

1 2 3
收藏数 52
精华内容 20
关键字:

并且是什么关联词