我们使用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")