来自数据库的大块数据将作为Web服务API响应发送

时间:2015-07-09 06:52:32

标签: mysql ruby web-services webserver sinatra-activerecord

我们使用Ruby 2.0.0作为编程语言,使用Sinatra作为框架,使用MYSQL作为数据库活动。此应用程序主要用于创建Web服务API。 我们需要创建一个" GET API"它接受来自客户端的请求,并根据客户端请求从我们的表中获取记录,并以json格式将获取的记录作为响应返回给客户端。

从表中获得的结果是大块数据,需要很长时间才能从表中获取,这在作为对API的响应发送时导致"超时错误"或"内存泄漏错误"。

我们的桌子总是很大,我们的桌子很快就会得到api"总是处理来自表格的大块数据。

如何以更有效的方式更快地执行查询并以json格式发送大块数据作为客户端的响应?

请帮我解决可能的解决方案。

这是我的表格描述:

+ ------------------------ + ---------------- + ---- - + ----- + --------- +

|领域|输入|空|钥匙|默认|

+ ------------------------ + ---------------- + ---- - + ----- + --------- +

| id | int(11)|没有| PRI | NULL |

| AccountID | varchar(255)|没有| MUL |空|

| ApplyURL | varchar(1024)|是的| | NULL

| CityName | varchar(64)|是的| | NULL

| ClassList | varchar(5000)|是的| | NULL

| CompanyDID | varchar(20)|是的| | NULL

|联系公司| varchar(64)|是的| | NULL

| ContactEmail | varchar(512)|是的| | NULL

| ContactFax | varchar(32)|是的| | NULL

| ContactName | varchar(64)|是的| | NULL

|联系电话| varchar(100)|是的| | NULL

| CountryName | char(2)|没有| MUL | NULL

| DTCreated | datetime |没有| MUL | NULL

| DTModified | datetime |没有| MUL | NULL

| DTSysCreated | datetime |没有| MUL | NULL

| DTSysModified | datetime |没有| MUL | NULL

| DegreeCode | varchar(200)|是的| | NULL

| DegreeCodeDecoded | varchar(1024)|是的| | NULL

| DisplayCity | varchar(64)|是的| | NULL

| DisplayJobID | varchar(32)|是的| | NULL

| ExperienceCode | varchar(200)|是的| | NULL

| ExperienceCodeDecoded | varchar(1024)|是的| | NULL

| ExternalKey | varchar(32)|是的| | NULL

| GeoUSZip5 | varchar(5)|是的| | NULL

| HostSite | char(2)|没有| MUL | NULL

| IndustryCode | varchar(128)|是的| | NULL

| IndustryCodeDecoded | varchar(1024)|是的| | NULL

| IsBOFJob | tinyint(1)|是的| | NULL

| IsDiversityJob | tinyint(1)|是的| | NULL

| JobDID | varchar(20)|没有| MUL | NULL

| jobdesc |文字|是的| | NULL

| JobFunctionCode | varchar(1024)|是的| | NULL

| JobFunctionCodeDecoded | varchar(1024)|是的| | NULL

| JobReq |文字|是的| | NULL

| JobSkinDID | varchar(20)|是的| | NULL

| JobTitle | varchar(128)|是的| | NULL

| JobType | varchar(1024)|是的| | NULL

| JobTypeDesc | varchar(1024)|是的| | NULL

| JobTypeCodeDecoded | varchar(1024)|是的| | NULL

| LocLatitude |十进制(10,5)|是的| | NULL

| LocLongitude |十进制(10,5)|是的| | NULL

|位置| varchar(70)|是的| | NULL

| ManagementCode | varchar(20)|是的| | NULL

| MaxExp | int(11)|是的| | NULL

| MinExp | int(11)|是的| | NULL

| Onet | varchar(10)|是的| | NULL

| OnetTitle | varchar(200)|是的| | NULL

| PRBeginDate | datetime |没有| MUL | NULL

| PREndDate | datetime |没有| MUL | NULL

| PayBaseH |十进制(10,2)|是的| | NULL

| PayBaseL |十进制(10,2)|是的| | NULL

| PayBonus |十进制(10,2)|是的| | NULL

| PayComm |十进制(10,2)|是的| | NULL

| PayOther | varchar(64)|是的| | NULL

| PayPer | varchar(8)|是的| | NULL

| PayType | char(3)|是的| | NULL

| PostalCode | varchar(10)|是的| | NULL

| PostingPath | varchar(20)|没有| MUL | NULL

|重新安置| tinyint(1)|是的| | NULL

| RelocateOptions | varchar(5)|是的| | NULL

| ScreenerDID | varchar(20)|是的| | NULL

| SiteID | varchar(1024)|是的| | NULL

| SliceList | varchar(10000)|是的| | NULL

| StateName | char(30)|是的| | NULL

|状态| varchar(50)|没有| MUL | NULL

| TextPay | varchar(40)|是的| | NULL

| TotalPay |十进制(10,2)|是的| | NULL

| TownName | varchar(100)|是的| | NULL

| TravelCode | varchar(200)|是的| | NULL

| TravelCodeDecoded | varchar(1024)|是的| | NULL

| UpgradeList | varchar(64)|是的| | NULL

+ ------------------------ + ---------------- + ---- - + ----- + --------- + ---------------- +

我的SQL查询:

从exportjobs中选择*,其中Status =' Active'而HostSite =' WR'并且UPGRADELIST NOT In(" JCPRV0"," JCINT0"," JCSOLPRI0"," JSSLL0"," JNSOLPRI0", " JCPRI0ML"," JCBAS0JS")

0 个答案:

没有答案