在数据库方面,我是一个相对新手.我们正在使用MySQL,而我正在尝试加速似乎需要一段时间才能运行的SQL语句.我在SO上寻找类似的问题,但没找到.
目标是删除表A中表B中具有匹配id的所有行.
我目前正在做以下事情:
DELETE FROM a WHERE EXISTS (SELECT b.id FROM b WHERE b.id = a.id);
Run Code Online (Sandbox Code Playgroud)
表a中约有100K行,表b中约有22K行.列'id'是两个表的PK.
这个声明在我的测试盒上运行大约需要3分钟 - 奔腾D,XP SP3,2GB内存,MySQL 5.0.67.这对我来说似乎很慢.也许不是,但我希望加快速度.是否有更好/更快的方法来实现这一目标?
编辑:
一些可能有用的其他信息.表A和B具有与我创建表B时所做的相同的结构:
CREATE TABLE b LIKE a;
Run Code Online (Sandbox Code Playgroud)
表a(以及表b)有一些索引可以帮助加快针对它的查询.再说一遍,我是DB工作的相对新手,还在学习.我不知道这对事情有多大影响,如果有的话.我认为它确实有效,因为索引也必须清理,对吧?我还想知道是否有任何其他数据库设置可能会影响速度.
另外,我正在使用INNO DB.
以下是一些可能对您有所帮助的其他信息.
表A有一个类似于此的结构(我已经对此进行了清理):
DROP TABLE IF EXISTS `frobozz`.`a`;
CREATE TABLE `frobozz`.`a` (
`id` bigint(20) unsigned NOT NULL auto_increment,
`fk_g` varchar(30) NOT NULL,
`h` int(10) unsigned default NULL,
`i` longtext,
`j` bigint(20) NOT NULL,
`k` bigint(20) default NULL,
`l` varchar(45) NOT NULL,
`m` int(10) unsigned default NULL,
`n` varchar(20) default …
Run Code Online (Sandbox Code Playgroud) 我有一些代码,我在C#中使用线程静态对象.
[ThreadStatic]
private DataContext connection
Run Code Online (Sandbox Code Playgroud)
我想知道,在这种情况下,如果我将静态修饰符放在线程静态上下文中,我会得到什么改变?
[ThreadStatic]
private static DataContext connection
Run Code Online (Sandbox Code Playgroud)
第一个是每个线程每个实例有一个上下文副本,每个线程只有一个副本吗?
假设我的UI上有一些TextBlocks,就像这样:
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding DessertIndex}" />
<TextBlock Text="{Binding Food[2]}" />
<TextBlock Text="{Binding Food[{Binding DessertIndex}]}" />
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
在我的代码后面我有这样的东西:
public partial class MainWindow : Window
{
public int DessertIndex
{
get { return 2; }
}
public object[] Food
{
get
{
return new object[]{"liver", "spam", "cake", "garlic" };
}
}
public MainWindow()
{
InitializeComponent();
DataContext = this;
}
}
Run Code Online (Sandbox Code Playgroud)
前两个TextBlocks对我来说很好,分别显示2和'cake'.第三个没有完成我想要的,即使用DessertIndex属性索引到该数组并显示'cake'.我在这里搜索了一些关于类似问题但没有找到的问题.最终,我不想在我的.xaml文件中指定像2这样的值,而是希望依赖属性来索引到该数组中.这可能吗?如果是这样,我在这里做错了什么?
编辑:
所以我更接近的是数据是这些object []的List的情况,我使用上面的StackPanel作为ListBox的DataTemplate的一部分.因此,正如Mark Heath在下面所建议的那样,使用取消引用数组的属性的想法似乎并不像我想要的那样工作.想法?
我的ASP.NET MVC 3应用程序上有一些jqGrids,它们有很多列.我在列定义中添加了以下内容,以默认隐藏一些列:
colModel: [
{ name: 'IceCreamID', hidden: true},
{ name: 'RecipeID', hidden: true }
Run Code Online (Sandbox Code Playgroud)
这很好用.这些列在我的网格上不可见.
然后我添加了这个来实现列选择器:
var grid = $('#icecreamGrid');
grid.jqGrid('navButtonAdd', '#icecreamPager',
{ caption: "Columns", buttonicon: "ui-icon-calculator",
title: "Choose Columns",
onClickButton: function() {
grid.jqGrid('columnChooser');
}
});
Run Code Online (Sandbox Code Playgroud)
太棒了,现在提出了专栏选择器.然后我将以下内容添加到我从未希望在列选择器中显示的列中:
colModel: [
{ name: 'IceCreamID', hidden: true, hidedlg: true},
Run Code Online (Sandbox Code Playgroud)
所以我现在可以隐藏/显示列就好了.现在,您如何坚持这些信息?D B?作为一个cookie?另一种方式?是否有一种首选的方式来存储这种真正是用户偏好的信息,而不是与数据本身相关的信息?
更多信息
根据Oleg在下面的评论,我想提供更多信息.
这里的要点是我有10-15列的网格,可以根据用户的偏好显示.举一个简单的例子,我的一个网格有以下9列:
IceCream|ShortName|HasNuts|SugarAdded|LimitedRun|PromoItem|Facility|FirstRun|LastRun
Run Code Online (Sandbox Code Playgroud)
用户可以根据个人喜好隐藏/显示这9列中的任何一列.
我想要做的是提供一种方法来持久保存特定用户想要查看的列,以便他/她不必在每次显示带有该网格的页面时重新选择这些列.
我有几个文本框,用户可以在其中输入信息.这可以包括逗号,所以我不能使用标准的逗号分隔字符串.
什么是一个好的分隔符来表示字符串应该基于用户在其着作中通常不使用的字符来分隔?我将把这些字段组合成一个字符串字符串并将它们传递给我的加密方法.在解密它们之后,我需要能够可靠地分离它们.
如果重要的话,我正在使用C#.
我正在开发我的第一个ASP.NET MVC 3应用程序,我有一个看起来像这样的视图:
@model IceCream.ViewModels.Note.NotesViewModel
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
@Html.TextBoxFor(m => m.Name)
foreach (var item in Model.Notes)
{
@Html.EditorFor(m => item);
}
<input type="submit" value="Submit"/>
}
Run Code Online (Sandbox Code Playgroud)
我有一个如下所示的EditorTemplate:
@model IceCream.ViewModels.Note.NoteViewModel
<div>
@Html.HiddenFor(m => m.NoteID)
@Html.TextBoxFor(m => m.NoteText)
@Html.CheckBoxFor(m => m.IsChecked)
</div>
Run Code Online (Sandbox Code Playgroud)
NotesViewModel看起来像这样:
public class NotesViewModel
{
public string Name { get; set; }
public IEnumerable<NoteViewModel> Notes { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
NoteViewModel如下所示:
public class NoteViewModel
{
public int NoteID { get; set; }
public System.DateTime Timestamp { get; set; }
public …
Run Code Online (Sandbox Code Playgroud) 我想用Dictonary在C#中填充我的DataGrid.我已经将Dictionary设置为DataGrid的ItemsSource.但是没有显示数据......我还将AutoGenerateColumns设置为true.哪里出错了?提前致谢
我已经看到很多关于匿名类型如何工作的描述,但我不确定它们是如何真正有用的.有哪些场景可以使用匿名类型在精心设计的程序中解决?
我一直在阅读关于MySQL中的临时表的一些内容,但对于一般的数据库,特别是MySQL,我是一个新手.我已经看了一些关于如何创建临时表的示例和MySQL文档,但我正在尝试确定临时表如何使我的应用程序受益,我猜其次是我可以遇到的各种问题.当然,每种情况都不同,但我想我正在寻找的是关于这个主题的一些一般性建议.
我做了一些谷歌搜索,但没有找到我正在寻找的主题.如果您对此有任何经验,我很乐意听到.
谢谢,马特
C#
每次我运行我的porgram我都会得到这个例外:
但是当我在调试模式下运行时,没有异常并且程序运行正常,我该怎么办?
注意:我不在项目的任何地方使用invoke()
编辑:好的,这里是详细信息中找到的代码:如果有人知道如何使用protoBuff,并知道这个问题....
************** Exception Text **************
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> ProtoBuf.ProtoException: Incorrect wire-type deserializing TimeSpan
at ProtoBuf.ProtoBcl.ProtoTimeSpan.DeserializeTicks(SerializationContext context) in c:\protobuf-net_fixed\trunk\protobuf-net\ProtoBcl\ProtoTimeSpan.cs:line 80
at ProtoBuf.ProtoBcl.ProtoTimeSpan.DeserializeDateTime(SerializationContext context) in c:\protobuf-net_fixed\trunk\protobuf-net\ProtoBcl\ProtoTimeSpan.cs:line 41
at ProtoBuf.Property.PropertyDateTimeString`1.DeserializeImpl(TSource source, SerializationContext context) in c:\protobuf-net_fixed\trunk\protobuf-net\Property\PropertyDateTimeString.cs:line 32
at ProtoBuf.Property.Property`2.Deserialize(TSource source, SerializationContext context) in c:\protobuf-net_fixed\trunk\protobuf-net\Property\Property.cs:line 150
at ProtoBuf.Serializer`1.Deserialize[TCreation](T& instance, SerializationContext context) in c:\protobuf-net_fixed\trunk\protobuf-net\SerializerT.cs:line 568
at ProtoBuf.Serializer`1.DeserializeChecked[TCreation](T& instance, SerializationContext source) in c:\protobuf-net_fixed\trunk\protobuf-net\SerializerT.cs:line 400
at ProtoBuf.SerializerItemProxy`2.Deserialize(TActualClass& instance, SerializationContext source) in c:\protobuf-net_fixed\trunk\protobuf-net\SerializerProxy.cs:line …
Run Code Online (Sandbox Code Playgroud) c# ×5
asp.net-mvc ×2
mysql ×2
wpf ×2
.net ×1
asp.net ×1
data-binding ×1
datagrid ×1
exception ×1
jqgrid ×1
performance ×1
sql ×1
sql-delete ×1
static ×1
xaml ×1