我重构了一个从另一家公司继承的应用程序的缓慢部分,以使用内部连接而不是子查询
WHERE id IN (SELECT id FROM ...)
Run Code Online (Sandbox Code Playgroud)
重构的查询运行速度提高了约100倍.(约50秒到约0.3)我预计会有所改善,但任何人都可以解释为什么它如此激烈?where子句中使用的列都已编入索引.SQL是否每行执行一次where子句中的查询?
更新 - 解释结果:
不同之处在于"where in in()"查询的第二部分 -
2 DEPENDENT SUBQUERY submission_tags ref st_tag_id st_tag_id 4 const 2966 Using where
Run Code Online (Sandbox Code Playgroud)
vs 1带连接的索引行:
SIMPLE s eq_ref PRIMARY PRIMARY 4 newsladder_production.st.submission_id 1 Using index
Run Code Online (Sandbox Code Playgroud) 有没有人知道类似于Chronic for Ruby的.NET日期/时间解析器(处理诸如"明天"或"下周四下午3点"之类的东西)?
注意:我写Ruby(这是我对Chronic的了解),但这个项目必须使用.NET.
我似乎错过了一些关于LINQ的东西.对我来说,看起来它正在采用我最喜欢的SQL的一些元素,并将它们转移到C#语言中并将它们用于其他事情.
我的意思是,我可以看到在数据库以外的东西上使用类似SQL的语句的好处.但是,如果我想编写SQL,那么,为什么不编写SQL并将其保留在C#之外呢?我在这里错过了什么?
有没有人知道如何在相机模式下启用UIImagePickerController上的相册按钮?就像iphone上的相机应用程序如何在图像和视频拍摄之间切换一样,还有按钮来查看照片库?
我为摄影师写了一个实用工具,我打算在网上卖得很便宜(10美元).我想让用户在要求许可之前试用软件一周左右.由于这是一个个人项目而且软件价格不是很高,我认为购买专业许可提供商的服务并不值得,而且我自己动手.
当前,应用程序检查包含加密字符串的注册表项,该字符串指定试用期到期或具有有效许可证.如果密钥不存在,则创建试用期密钥.
所以你需要做的就是免费获得另一周是删除注册表项.我不认为很多用户会这样做,特别是当应用程序只有10美元时,但我很好奇是否有更好的方法来做到这对合法用户来说并不繁琐.我正常编写Web应用程序,之前没有处理过这些内容.
该应用程序是在.NET 2.0中,如果这很重要.
我有一个绝对定位div
,我想在用户点击链接时显示.的onclick
链路的调用一个js函数,设置在div到框的显示(也尝试:"", ,inline
,table-cell
,inline-table
等等).这在IE7中效果很好,在我尝试过的所有其他浏览器中都没有(FF2,FF3,Opera 9.5,Safari).
我已经尝试在通话之前和之后添加提醒,并且它们显示显示已从更改none
为block
但div
不显示.
div
如果我使用Firebug的HTML检查器更改显示值(但不是通过Firebug的控制台运行javascript),我可以在FF3中显示 - 所以我知道它不仅仅是在屏幕外显示等.
我已经尝试了我能想到的一切,包括:
关于什么可能导致这个的任何想法?
在java中,我可以使用'final'关键字来完成此操作.我没有在C#中看到'final'.有替代品吗?
在ASP.NET MVC中,您可以使用AcceptVerbs属性将视图函数与动词相关联:
public ActionResult Create()
{
// do get stuff
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(FormCollection collection)
{
// do post stuff
}
Run Code Online (Sandbox Code Playgroud)
Django Book建议如下:
def method_splitter(request, *args, **kwargs):
get_view = kwargs.pop('GET', None)
post_view = kwargs.pop('POST', None)
if request.method == 'GET' and get_view is not None:
return get_view(request, *args, **kwargs)
elif request.method == 'POST' and post_view is not None:
return post_view(request, *args, **kwargs)
raise Http404
Run Code Online (Sandbox Code Playgroud)
urls.py:
urlpatterns = patterns('',
# ...
(r'^somepage/$', views.method_splitter, {'GET': views.some_page_get,
'POST': views.some_page_post}),
# ...
) …
Run Code Online (Sandbox Code Playgroud) 我正在拍摄一个摄影网站.网站上的照片将始终属于一个事件.我最初的设计是:
Table: Events
ID, Title, etc
Table: Photos
ID, ThumbnailURL, etc
Table: EventPhotos
EventID, PhotoID, SortOrder
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎很自然,但我意识到它描述的关系实际上允许照片属于许多事件.我想过像这样重构它,它只允许照片属于一个事件:
Table: Events
ID, Title, etc
Table: Photos
ID, EventID, SortOrder, ThumbnailURL, etc
Run Code Online (Sandbox Code Playgroud)
事件关系数据在照片表中 - 原始设计将照片,事件和关系分开 - 对我来说似乎有点肮脏/混乱 - 但它确实避免了连接,并且它强制关系到'has一个/属于'而不是'有很多' - 您怎么看?
.net ×2
c# ×2
sql ×2
asp.net-mvc ×1
css ×1
datetime ×1
django ×1
django-views ×1
hcard ×1
html ×1
http-verbs ×1
inheritance ×1
ios ×1
iphone-4 ×1
javascript ×1
join ×1
licensing ×1
linq ×1
microformats ×1
mysql ×1
nlp ×1
normalizing ×1
performance ×1
schema ×1
trialware ×1
vcf-vcard ×1