我有一个至少有几百万行的表和一个看起来大致如下的所有整数的模式:
start
stop
first_user_id
second_user_id
Run Code Online (Sandbox Code Playgroud)
使用以下查询拉取行:
SELECT *
FROM tbl_name
WHERE stop >= M
AND first_user_id=N
AND second_user_id=N
ORDER BY start ASC
SELECT *
FROM tbl_name
WHERE stop >= M
AND first_user_id=N
ORDER BY start ASC
Run Code Online (Sandbox Code Playgroud)
我无法找出加速这些查询的最佳索引.问题似乎是ORDER BY,因为当我把它拿出来时查询速度很快.
我使用标准索引格式尝试了所有不同类型的索引:
ALTER TABLE tbl_name ADD INDEX index_name (index_col_1,index_col_2,...)
Run Code Online (Sandbox Code Playgroud)
而且他们似乎都没有加快查询速度.有谁知道什么索引可以工作?另外,我应该尝试不同类型的索引吗?我不能保证每一行的唯一性,所以我避免使用UNIQUE索引.
任何指导/帮助将不胜感激.谢谢!
更新:这里是一个索引列表,我最初没有包括这个,因为我采取了猎枪的方法,并添加了大量的索引寻找一个有效的:
start_index: [start, first_user_id, second_user_id]
stop_index: [stop, first_user_id, second_user_id]
F1_index: [first_user_id]
F2_index: [second_user_id]
F3_index: [another_id]
test_1_index: [first_user_id,stop,start]
test_2_index: [first_user_id,start,stop]
test_3_index: [start,stop,first_user_id,second_user_id]
test_4_index: [stop,first_user_id,second_user_id,start]
test_5_index: [stop,start]
Run Code Online (Sandbox Code Playgroud)
这是EXPLAIN输出.
*************************** 1. row ***************************
id: 1 …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个简单的基于Spring的Web服务,它支持带有xml内容的"帖子".
在Spring中,我定义了一个AnnotationMethodHandler:
<bean id="inboundMessageAdapter" class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<util:list>
<bean class="org.springframework.http.converter.xml.MarshallingHttpMessageConverter">
<property name="marshaller" ref="xmlMarshaller"/>
<property name="unmarshaller" ref="xmlMarshaller"/>
</bean>
</util:list>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
和一个基于jaxb的xml marshaller:
<bean id="xmlMarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="contextPaths">
<array>
<value>com.company.schema</value>
</array>
</property>
<property name="schemas">
<array>
<value>classpath:core.xsd</value>
</array>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
我的控制器注释如下,其中"Resource"是由jaxb自动生成的类:
@RequestMapping(method = POST, value = "/resource")
public Resource createResource(@RequestBody Resource resource) {
// do work
}
Run Code Online (Sandbox Code Playgroud)
Web服务调用的结果始终为"HTTP/1.1 415 Unsupported Media Type".这是一个示例服务调用:
HttpPost post = new HttpPost(uri);
post.addHeader("Accept", "application/xml");
post.addHeader("Content-Type", "application/xml");
StringEntity entity = new StringEntity(request, "UTF-8");
entity.setContentType("application/xml");
post.setEntity(entity);
Run Code Online (Sandbox Code Playgroud)
在我看来,我正在设置正确的媒体类型.有人有想法吗?
编辑:在进一步调试之后,它看起来好像从未尝试解组该对象.我不太了解AnnotationMethodHandler如何知道application/xml类型应该发送到MarshallingHttpConverter背后的黑魔法.任何人都可以对此有所了解吗?
如何在VisualStudio 2008中获取此窗口:
alt text http://sarathc.files.wordpress.com/2008/09/image-thumb6.png
我特别关注"查看"菜单.它不在那里.我有一个非Express版本的VisualStudio 2008.我通过google发现了上面的截图..这就是我需要的窗口.有什么办法让这个窗口打开?
我有一个可自定义的rdlc报告,用户可以在其中选择要显示的列.所有列都包含在报表设计器中,我使用参数根据用户的选择隐藏/显示列.报告正确呈现,并且仅显示所选列,但是,报告的总宽度与所有列都可见时相同.这意味着报表可能在所选列的右侧有一个巨大的空白区域,看起来非常愚蠢.
所以我的问题是:有没有办法在运行时动态调整报告宽度,以避免报告中出现大的空白区域?我试图通过为报表正文的宽度指定一个参数来在设计器中执行此操作....但这是不允许的.宽度不能是设计器中的任何类型的表达式,只允许实际值.
有什么建议?
有没有人知道差异查看器或比较程序可以做基于段落的差异?我的repos有大量的LaTeX文件格式化为80个字符宽的段落(便于用vim编辑).目前很难解释各种版本之间的差异,因为导致换行位置的任何编辑都会导致差异中出现很多虚假差异.
我有一个水平方向的拆分容器.
我只想在窗体调整大小时为panel2设置固定高度,并让分割器调整面板2的大小
现在我这样做,但我不满意,因为用户注意到面板调整大小
Private Sub Form1_ResizeBegin(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles Me.ResizeBegin
spil = SplitContainer1.Height - SplitContainer1.SplitterDistance
End Sub
Private Sub Form1_ResizeEnd(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles Me.ResizeEnd
SplitContainer1.SplitterDistance = SplitContainer1.Height - spil
End Sub
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我喜欢LWN文章"Crash-only software",我想了解更多关于崩溃安全和容错编程的知识.
令人惊讶的是,很难确保持久状态在故障情况下是一致的.在这里,我甚至不讨论分布式操作:在单个节点上也很难:如果系统崩溃,即使是正常的Berkeley DB(BDB数据存储或BDB并发数据存储)也可能有一个被破坏的数据库.不仅高级应用程序约束被破坏,如果系统崩溃,数据库可能无法正确打开.
什么是关于崩溃安全和容错设计,方法和编程的良好资源.
如果资源专注于C++和POSIX环境,我将不胜感激.
我正在尝试在我的GWT应用程序中使用ClientBundle来使多个图像作为单个文件发送.我这样声明了这个包:
public interface MyResources extends ClientBundle {
public static final MyResources INSTANCE = GWT.create(MyResources.class);
@Source("icon1.png") ImageResource icon1();
@Source("icon2.png") ImageResource icon2();
}
Run Code Online (Sandbox Code Playgroud)
这在Firefox和IE8的伟大工程,但在IE7(或更早)整个精灵代替我原来的图像之一的显示出来 - 那就是,ICON1旁边旁边ICON3到ICON2,等等.在使用IE8-as-IE7模式或兼容性视图的IE8开发人员工具中,我可以看到它显示的文件名如26BEFD2399A92A5DDA54277BA550C75B.cache.png,这是我所期望的.
那么有没有办法让GWT图像精灵在IE7和更低版本中运行?如果没有,有没有办法优雅地降级,所以其他浏览器的用户获得spriting的加速,IE7和IE6用户获得看起来正确但速度较慢的东西?
编辑:该客户端包开发者指南具有使用ClientBundle和@sprite的讨论,并说:"对IE6的支持是不是在这种格式是可行的,因为对DOM结构变化是实行必要的'窗口’效应一旦它的可能.为了区分user.agent中的ie6和ie7,我们可以重新考虑对ie6的支持.在当前的实现中,ie6代码将无法正确呈现,尽管这是一个纯粹的装饰性问题.这是在我的情况下发生了什么,有没有办法解决它?显示所有图像"纯粹是一个美容问题",但它是一个非常严重的问题.
编辑2:这是我如何使用图像:
public class MyTabHeader extends Composite {
@UiField Image icon;
public MyTabHeader(String iconPath) {
initWidget(uiBinder.createAndBindUi(this));
this.icon.setUrl(iconPath);
}
}
public class MyTabPanel extends TabPanel {
public MyTabPanel() {
String icon1 = MyResources.INSTANCE.icon1().getURL();
MyTabHeader tabHeader1 = new MyWidget(icon1);
Widget tabContent1 = new HTML("Content 1");
add(tabContent1, tabHeader1);
String icon2 = MyResources.INSTANCE.icon2().getURL();
MyTabHeader tabHeader2 …Run Code Online (Sandbox Code Playgroud) 编译C#应用程序时出现此错误.看起来像一个微不足道的错误,但我不能解决它.
我的设置是Windows 7 64位.Visual Studio 2010 C#表达B2Rel.
我添加了对位于的System.Web.dll的引用C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0,但它有一个黄色感叹号,我仍然得到上述错误.我也有using System.Web声明.
我究竟做错了什么?
更新:在得到快速回答指向我的根本原因之后,我在Google中搜索了一下它指出System.Web.dll用于完整框架的位置.我没有找到这样的参考.
对于像我这样的新手,这篇博客很好地总结了框架(客户端和完整版)之间的区别.我找不到一个说明客户端框架中是否支持某个Dll的位置.我想Visual Studio中的感叹号应该是第一个信号......
我有一个listview,其中包含几个动态创建的项目,每个项目有两个子项目,数量和代码在查询数据库后应更新数量,但为了使代码更具可读性,我想通过密钥访问子项目而不是通过它的索引,类似于:
子项["量"]
但我不知道如何通过集合分配密钥.