根据你说的需求:
"可程序中需要查询每行的所有数据"、“查询全部九百万条数据”
-------------------------------
这样的需求跟索引没有关系了(因为已经肯定是走全表扫描的了),要提高效率的办法就是:1、提高硬盘的io速度;2、增加内存以使sql server有更多的缓存。
另外,你程序不要一次性取那么多数据返回,这样会拖死的,建议你考虑变换下处理逻辑(如:分批取回--可以根据id列值进行分批;将数据直接在服务端存成文本再传回本地处理)。
"而是需要根据这些数据逐一进行其他功能的 *** 作,这款程序是不联网的"
--------------------------------
就算这样的话,也不能一次性把9百万数据一次性取回,如果你非要取出来再 *** 作的话,那你得考虑分批去取。或者你把处理逻辑写在存储过程,然后由SQL SERVER本身去完成逻辑处理。总之,不管怎样,你也是得优化你现在的处理逻辑(现有处理逻辑我觉得不合理,效率很低下)。
“真正部署到电力网的服务器上速度会不会提高呢”
------------------------
服务器当然比你本地要快得多啦,硬件配置根本就不同一个级别,但不管怎样,还是建议你参考上面的建议优化你的处理逻辑才行,否则,你系统的效率将很低。
在Oracle数据库中,使用大量数据的视图来更新另一个表可能会导致性能问题。视图是一个虚拟表,它是从一个或多个基础表根据查询语句生成的。因此,当你查询一个包含百万级数据的视图时,实际上是在查询底层的表,这可能导致查询速度变慢,尤其是当涉及到多个大表和复杂的连接条件时。
客户反馈说不合理,不能查询视图来更新,这个说法并不完全正确。在Oracle中,你可以通过视图来更新基础表,但是需要满足以下条件:
视图是可更新的。这意味着视图必须满足一定的要求,如不能包含聚合函数、distinct关键字等。
视图的更新 *** 作不会影响到其他表,导致数据不一致。
然而,视图更新 *** 作可能会导致性能问题,因为视图查询的底层表可能很大。在你的情况下,如果视图是可更新的,并且在性能上可接受,那么可以考虑继续使用视图进行更新。否则,你可以考虑以下几种方法来优化这个过程:
对视图进行优化。检查底层查询是否可以进行优化,例如使用更有效的连接条件、索引等。
使用物化视图。物化视图是一个实际的表,它存储了视图的数据。与普通视图相比,物化视图可以大大提高查询性能,因为数据已经被计算和存储在物化视图中。
分批更新。将数据分成较小的批次进行处理,可以减轻数据库的压力,提高性能。
总之,通过视图来更新表并不一定不合理,但是需要考虑视图的可更新性和性能。在实际 *** 作中,应根据具体情况进行权衡,并尽量采用最优的方法来提高性能。
…………
回复:
即使您的表不是视图的基础表,查询百万级的视图来更新表也可能会导致性能问题。这是因为视图查询的底层表可能很大,可能需要执行大量的IO *** 作和计算来获取所需的数据。因此,即使您的表不是视图的基础表,使用视图来更新表也可能会导致性能问题。
如果您只是需要通过视图查询数据而不更新数据,也可能会受到相同的性能问题。如果您的查询涉及到大量的数据和复杂的连接条件,那么查询性能可能会很低。这也可能会影响到其他用户的查询 *** 作。
如果视图不能用于查询更新,您可以要求提供视图中的基础表,并使用基础表进行查询和更新 *** 作。这将消除使用视图时可能遇到的性能问题,因为您可以直接查询和更新基础表。不过,在使用基础表之前,您需要确保查询和更新 *** 作不会影响到其他表的数据完整性。
Navicat是一个强大的MySQL数据库管理和开发工具。Navicat为专业开发者提供了一套强大的足够尖端的工具,但它对于新用户仍然是易于学习。Navicat,使用了极好的图形用户界面(GUI),可以让你用一种安全和更为容易的方式快速和容易地创建、组织、存取和共享信息。用户可完全控制MySQL数据库和显示不同的管理资料,包括一个多功能的图形化管理用户和访问权限的管理工具,方便将数据从一个数据库移转到另一个数据库中(LocaltoRemote、RemotetoRemote、RemotetoLocal),进行档案备份。Navicat支援Unicode,以及本地或遥距MySQL伺服器多连线,用户可浏览数据库、建立和删除数据库、编辑数据、建立或执行SQLqueries、管理用户权限(安全设定)、将数据库备份/复原、汇入/汇出数据(支援CSV,TXT,DBF和XML档案种类)等。新版与任何MySQL50x伺服器版本兼容,支援Triggers,以及BINARYVARBINARY/BIT数据种类等的风范。
Navicat8027主要功能
-表单检视(新增)
-虚拟群组(新增)
-自动完码(新增)
-排程工作结果自动传送电子邮件(新增)
-查询、检视及事件自动完码(新增)
-报告可汇出成各种格式,PDF,Excel,HTML等(新增)
-超时自动重新连接到SQL服务器
-数据和结构同步
-导出注册文件以传送到另外的计算机
-新查询创建器--为不同的数据库创建查询
-查询参数
-SQL控制台
-建立查看
-SSH密钥
-支持所有MySQL版本
-SSH及>
-汇入/汇出数据
-报表设计及建立
NavicatforMySQL
——下载次数最多的MySQL数据库管理和开发工具
>
多种格式的导入导出能力,使维护数据的过程很容易。
批量的工作调度处理,有力减轻了数据库管理员的负担。
快速地实现广域网远程连接,更加安全简便。
智能地构建复杂的SQL语句,提高开发效率。
产品概述
NavicatMySQL是一个强大的MySQL数据库服务器管理和开发工具。它可以与任何321或以上版本的MySQL一起工作,并支持大部分的MySQL最新功能,包括触发器、存储过程、函数、事件、视图、管理用户,等等。它不仅对专业开发人员来说是非常尖端的技术,而且对于新手来说也易学易用。其精心设计的图形用户界面(GUI),NavicatMySQL可以让你用一种安全简便的方式快速并容易地创建,组织,访问和共享信息。
NavicatMySQL在三种平台上是可用的——微软Windows、MacOSX和Linux *** 作系统。它可以使用户连接到本地/远程服务器,提供了几种实用工具,例如数据结构同步、导入/导出、备份和报告,使维护数据的过程很容易。
自从2001年初以来,Navicat在全世界范围内已被下载了数百万次;Navicat是公认最受欢迎的MySQL前端图形用户界面,而且它对于本地或远程的MySQL管理和开发,在三种 *** 作系统平台上——Windows、MacOSX和Linux都是可用的。在过去的5年中,Navicat已在最好的服务器管理工具类别的几个奖项中被提名,并且被许多托管公司选为一种标准的托管工具,例如Rackspace公司,是最成功的管理托管公司之一。
在世界各地的全球企业,政府机构和教育机构,Navicat是众所周知的,可以信任并且每天都要使用的。通常世界500强的公司中100多个都使用Navicat。
详细资料请参考:>
数据记录数,因为,并发指在前段的是>
其实就跟分页获取数据类似,网上这种例子就比较多了,分段获取你可以把当前获取的最大的自增id存储在文件、数据库或者memcache中,下一段用大于这个做条件,然后遍历完再更新这个数就行了。
你好,你可以根据条件去添加索引,例如:
一、所有mysql索引列类型都可以被索引,对来相关类使用索引可以提高select查询性能,根据mysql索引数,可以是最大索引与最小索引,每种存储引擎对每个表的至少支持16的索引。总索引长度为256字节。
mysim和innodb存储引擎的表默认创建索引都是btree索引,目前mysql还不支持函数索引,但支持前缘索引,对字段前N个字符创建索引
二、mysql创建索引语法
Create [unioun|fulltext|spatial] index indexname[using indextype] on tablename( tablenamecol)
index_col_name:
col_name[ (length)][asc |desc]
如果你创建索引时搞错了,需要修改mysql索引我们可以用alert来修改索引,语法与create index创建索引差不多,我们就不说了,可以查看相关手册。
下面我们来看一个关于mysql创建索引实例教程。
mysql>create index cityname on city(city(2));
Query Ok,600 rows affected (026 sec)
Records :600 Duplicates:0 Warings 0:
我们现在来以city为条件进行查询,如下面。
->explain select from city where city ='
不过通常对百万级数据的查询或者其他 *** 作,都改换其他的大型的数据库了,希望能帮到你,望采纳。
以上就是关于sql2008数据库,九百万条数据,如何快速查询全部的内容,包括:sql2008数据库,九百万条数据,如何快速查询、在Oracel中,查询百万级以上的视图来更新另外一个表,是否合理、数据库查询等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)