小编Ken*_*ite的帖子

为SELECT查询添加更多特异性会使它更快吗?

我有一个相当大的表,有150,000个记录.它有很多字段,如country_id,region_id,city_id,纬度,经度,postal_code,仅举几例.

我需要根据纬度和经度从这张表中选择,没有别的.我的查询如下所示:

SELECT * FROM `mytable` 
  WHERE `latitude` = '$latitude' 
  AND `longitude` = '$longitude';
Run Code Online (Sandbox Code Playgroud)

现在虽然我从这个表中选择的唯一标准是纬度/经度,但我想知道如果添加更多特异性会加快查询速度,例如:

SELECT * FROM `mytable` 
  WHERE `city_id` = '320' 
  AND `latitude` = '$latitude' 
  AND `longitude` = '$longitude';
Run Code Online (Sandbox Code Playgroud)

对我来说,在查询中添加更多条件可以加快速度,但同时我通过首先确保选择的所有记录来自特定的城市ID,从而缩小可能结果的数量,这似乎是违反直觉的.我知道我将在接下来指定的纬度和经度范围内.

总记录可能约为150k,但距离该特定城市仅约10k.

那么这是明智的还是我只是让查询更耗时?

mysql sql

5
推荐指数
1
解决办法
345
查看次数

将iOS应用程序版本还原为旧版本

一旦我的新版本被证明并发布,如果我想回滚,itunes是否具有恢复到以前版本的功能,或者我应该重新提交旧版本?

谢谢

reverse itunes app-store ios

5
推荐指数
1
解决办法
3567
查看次数

IndexOf ComboBox对我不起作用

VB2010.我正在尝试使用Enumeration单位的内容填充ComboBox.我已经设法用字典做了这个.就像是

Dim dUnits As New Dictionary(Of String, Integer)
Dim da As String

For Each enumValue As eUnits In System.Enum.GetValues(GetType(eUnits))
   da = ConvertEnumToCommonName 'gets unique name for an enumeration
   dUnits.Add(da, enumValue)
Next

cbo.DisplayMember = "Key"   'display the the common name
cbo.ValueMember = "Value"   'use the enumeration as the value
cbo.DataSource = New BindingSource(dUnits, Nothing)
Run Code Online (Sandbox Code Playgroud)

当我加载我的表格运作良好.现在,用户可以选择要显示的默认单位.那么我试试吧

Dim defUnits As eUnits = eUnits.Feet
Dim idx As Integer = cbo.Items.IndexOf(defUnits) 'doesnt work, returns a -1
cbo.SelectedIndex = idx
Run Code Online (Sandbox Code Playgroud)

我已经做了一段时间的研究,并且相当肯定这与ComboBox将值存储为字符串有关,实际上我正在搜索一个整数的枚举.不知道我是否有这个权利.无论如何,我似乎无法选择默认项目.我可以尝试另一种方法吗?

vb.net combobox dictionary enumeration indexof

5
推荐指数
1
解决办法
1903
查看次数

如何检测其他控件何时更改?

我有一个习惯TLabel,原则上可以附加到表单中的任何其他可视组件.该组件具有一个属性position,告诉它将朝向附加控件(左侧,上方等)的位置.当附加相关控件时,这可以正常工作,并且组件根据position属性定位自身.

问题是当相关控件改变它的界限时我无法检测组件,因此它可以正确地重新定位自己.我想这与WMMove和有关WMResize.如何通知相关控件以通知TLabel任何边界属性已更改?

delphi delphi-xe2

5
推荐指数
1
解决办法
1001
查看次数

将信息从一种形式传递到另一种形式?

如何将信息从一个表单传递到另一个表单,例如在表单1的编辑中输入的值,当按下按钮时,编辑中的信息将被发送到表单2上的标签.

我怎样才能做到这一点?

delphi delphi-7

5
推荐指数
1
解决办法
1997
查看次数

SQL Server Management Studio键盘快捷键突出显示整行

在SQL Server Management Studio 2008中,我倾向于在单个窗口中编写大量查询,并在需要时执行单行操作.因此,突出显示句子的快捷方式有很多帮助.

我已经尝试了以下所有组合,但没有运气.
Ctrl+ Alt+ Down

Ctrl+ Shift+ Down

Alt+ Shift+Down

sql-server ssms keyboard-shortcuts

5
推荐指数
3
解决办法
1万
查看次数

了解不安全的代码及其用途

我正在阅读ECMA-334,正如一位以编程为生的朋友所建议的那样.我在处理不安全代码的部分.虽然,我对他们所谈论的内容感到有点困惑.

C#下面的垃圾收集器可能通过在内存中移动对象来工作,但这种移动对于大多数C#开发人员来说是不可见的.对于通常满足于自动内存管理但有时需要细粒度控制或额外性能的开发人员,C#提供了编写"不安全"代码的能力.这样的代码可以直接处理指针类型和对象地址; 但是,C#要求程序员修复对象以暂时阻止垃圾收集器移动它们.从开发人员和用户的角度来看,这种"不安全"的代码功能实际上是一种"安全"功能.代码中的不安全代码应使用修饰符unsafe清楚地标记,因此开发人员不可能意外地使用不安全的语言功能,并且编译器和执行引擎一起工作以确保不安全的代码不能伪装成安全代码26 8 9BLanguage概述.这些限制将不安全代码的使用限制在代码受信任的情况下.

这个例子

using System;
class Test
{
    static void WriteLocations(byte[] arr)
    {
        unsafe
        {
            fixed (byte* pArray = arr)
            {
                byte* pElem = pArray;
                for (int i = 0; i < arr.Length; i++)
                {
                    byte value = *pElem;
                    Console.WriteLine("arr[{0}] at 0x{1:X} is {2}",
                    i, (uint)pElem, value);
                    pElem++;
                }
            }
        }
    }
    static void Main()
    {
        byte[] arr = new byte[] { 1, 2, 3, 4, 5 };
        WriteLocations(arr);
        Console.ReadLine();
    }
}
Run Code Online (Sandbox Code Playgroud)

在名为WriteLocations的方法中显示一个不安全的块,它修复了一个数组实例,并使用指针操作迭代元素.每个数组元素的索引,值和位置都写入控制台.一个可能的输出示例是:

arr[0] at 0x8E0360 is …
Run Code Online (Sandbox Code Playgroud)

c# arrays unsafe memory-address

5
推荐指数
1
解决办法
1042
查看次数

重叠排名 - 创建框图

我几乎花了一整天的时间试图从 Graphviz 中获取框图。最大的问题似乎是我有垂直排名和水平排名。显示起来比解释起来容易,因此该图应如下所示:

框图

到目前为止,这是我的点代码:

digraph block_diagram 
{
  graph [ splines=ortho, rankdir=TB];
  node [shape=box, style=filled, fontname=Arial];

  layer_0 [style="rounded,filled", fillcolor="#99ccff", width=15, height=1, label="Layer 0"];

  layer_1 [shape=box, width=5, height=1, label="Layer 1"];
  //emptybox [shape=box,height=1, label=""];
  layer_1_1 [shape=box, width=5, height=1, label="Layer 1_1"];
  layer_2 [shape=box, width=5, height=1, label="Layer 2"];
  layer_3 [shape=box, width=5, height=1, label="Layer 3"];
  layer_4 [shape=box, width=5, height=1, label="Layer 4"];

  application [shape=box, width=3, height=5, label="Application"];

  layer_0 -> { layer_1 application };
  layer_0 -> layer_1 -> layer_1_1 -> layer_2 -> layer_3 -> layer_4;
  application -> { …
Run Code Online (Sandbox Code Playgroud)

diagram block ranking graphviz

5
推荐指数
1
解决办法
1583
查看次数

使用内存表排序网格

我想对网格进行排序.我创建了一个内存表,并将其作为数据源链接到网格.我将数据从nxQuery对象插入到内存表中.对于排序,我必须将索引添加到内存表中.

这是创建事件形式的索引添加和插入部分

nxMemTable1.IndexDefs.Clear;
nxMemTable1.FieldDefs.Clear;

nxMemTable1.FieldDefs.Add('packpatientid', ftInteger, 0, False);
nxMemTable1.FieldDefs.Add('firstname', ftString, 10, False);
nxMemTable1.FieldDefs.Add('lastname', ftString, 10, False);
while not nxQuery1.EOF do
begin
  nxMemTable1.Append;
  nxMemTable1.FieldByName('packpatientid').AsInteger :=   nxQuery1packpatientid.AsInteger;
  nxMemTable1.FieldByName('firstname').AsString := nxQuery1firstname.AsString;
  nxMemTable1.FieldByName('lastname').AsString := nxQuery1lastname.AsString;
  nxMemTable1.Post;
end;
Run Code Online (Sandbox Code Playgroud)

这是我试图对内存表进行排序的代码

procedure TForm1.Button2Click(Sender: TObject); begin nxMemTable1.IndexFieldNames := 'firstname'; end;

但这不起作用.当我点击按钮时,它显示"没有字段'名字'的索引'"

delphi

5
推荐指数
1
解决办法
575
查看次数

运行 npm start 时,依赖项与当前的 expo 包版本不兼容

我最近更新了 npm,现在,当我运行时npm start,会显示此消息:

Some of your project's dependencies are not compatible with currently installed expo package version:
 - @react-native-community/netinfo - expected version range: 5.5.1 - actual version installed: ^5.8.1
Run Code Online (Sandbox Code Playgroud)

有谁知道如何删除此警告?

谢谢你!

npm react-native expo

5
推荐指数
1
解决办法
2万
查看次数