问题列表 - 第22799页

MySQL没有在带有"IN"的子选择的外部查询上使用键

我正在查询这样的数据库:

 SELECT * from Log WHERE cookieId IN (select cookieId from Log WHERE someId="blafasel");
Run Code Online (Sandbox Code Playgroud)

我在someId和cookieId上有键,但查询速度很慢.如果我运行两个查询(外部和内部)将它们分开或非常快.

 select cookieId from Log WHERE someId="blafasel"
Run Code Online (Sandbox Code Playgroud)

几乎立即得到了我的结果.查询也是如此

 SELECT * FROM Log WHERE cookieId IN ("something","somethingelse","athirdoption")
Run Code Online (Sandbox Code Playgroud)

使用EXPLAIN告诉我在两个单个查询中使用了键,但是对于subselect查询键仅用于内部选择.我的问题是为什么?以及如何告诉MySQL更聪明一点.

好吧,我可以让我的应用程序分开运行两个查询,但这不方便.

谢谢你的帮助.

mysql performance key subquery

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

RRDTool - 根据几个RRD获取数据

是否可以通过RRDTool基于多个RRD DB获取数据,例如获取值是每个RRD所有值的总和?

rrdtool rrd

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

插入在C中使用void*的二叉树

我必须使用结构创建一个二叉树,如下所示:

struct treenode;
typedef struct treenode* TreeNode;
struct treenode {
 void* data;
 TreeNode left, right;
};
Run Code Online (Sandbox Code Playgroud)

使用void*作为要存储在每个叶子上的数据的类型,以便可以将任何类型的对象插入到树中.

当我插入一个新的叶子时,我必须使用一个比较函数,它检查新叶子中的数据是否已经在树中,这需要两个void*参数,例如:

int compare(void* a, void* b){
..
..
}
Run Code Online (Sandbox Code Playgroud)

但如果我不知道它们是什么类型,我如何比较这两个对象呢?

解决这个问题的一些代码会非常有用.

c binary-tree insert

0
推荐指数
1
解决办法
862
查看次数

使用try/catch而不是多个IF语句更好吗?

try/catch在Java中使用块而不是使用多个If语句来检查用户输入是否更好,更便宜或更具可读性?

解析Date字符串时的示例,使用try/catch块直接解析而不是编写查找非法字符的多个语句不是更好.

在另一个例子中,假设我想要读取文件或流,而不是使用Scanner,我只是强制该方法并等待发生异常.

这是一种健康的编程方法吗?它在虚拟机上更便宜吗?

更新
这里是我在使用DateFormat异常时的意思的一个例子,有时它可能是一个真正的问题来捕获错误,并且这样做,你能保证你的复杂(通常是不可读)代码容易出错吗?

java try-catch

14
推荐指数
1
解决办法
6730
查看次数

有什么理由不检查silverlight应用程序中的"应用程序库缓存"和"GPU加速"吗?

设置silverlight应用程序的属性时,我会看到未选中的框:

  • 使用应用程序库缓存减少XAP大小
  • 使用GPU加速

更小的下载大小更快的速度声音对我来说很好,这让我想知道为什么这些没有默认打开.

那么这些选择的缺点是什么?

silverlight

16
推荐指数
2
解决办法
1428
查看次数

Delphi的免费PDF库

是否有一个优秀的免费PDF生成器库为delphi?

我需要一个多页面+图形支持.

delphi pdf-generation

11
推荐指数
2
解决办法
3万
查看次数

NUnit和app.config的问题

当我对连接到DB检查运行简单测试时,我在NUnit中收到错误:

[Test]
public void TestConn()
{
    string  connectionString = ConfigurationManager.ConnectionStrings["FertigungRead"].ConnectionString;
    SqlConnection connection = new SqlConnection(connectionString);
    connection.Open();
    Assert.AreEqual(ConnectionState.Open, connection.State);
    connection.Close();
 }
Run Code Online (Sandbox Code Playgroud)

System.NullReferenceException:未将对象引用设置为对象的实例.

在线:

connectionString = ConfigurationManager.ConnectionStrings["FertigungRead"].ConnectionString;
Run Code Online (Sandbox Code Playgroud)

我可以在测试中使用ConfigurationManager吗?

nunit configurationmanager app-config visual-studio

33
推荐指数
3
解决办法
2万
查看次数

从分层表数据(T-SQL)生成结构化(xml)文档

我有这样的表(简化):

ID   |   Name  |   Parent
---------------------------------
1    |  IND    |   NULL
2    |  INS    |   5
3    |  CON    |   NULL
4    |  AUT    |   1
5    |  FIN    |   NULL
6    |  PHA    |   1
7    |  CFIN   |   5
8    |  CMRKT  |   7
Run Code Online (Sandbox Code Playgroud)

DDL:

CREATE TABLE [dbo].[tblIndustryCodes](
        [IdIndustry] [int] IDENTITY(1,1) NOT NULL,
        [IndustryCode] [nvarchar](5) NULL,
        [IndustryName] [nvarchar](50) NULL,
        [ParentId] [int] NULL,
 CONSTRAINT [PK_tblIndustryCodes] PRIMARY KEY CLUSTERED (       [IdIndustry] ASC))
Run Code Online (Sandbox Code Playgroud)

插入内容:

INSERT INTO [tblIndustryCodes]
           ([IndustryCode]
           ,[IndustryName]
           ,[ParentId]) …
Run Code Online (Sandbox Code Playgroud)

xml t-sql recursion

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

如何在PHP中使用call_user_func_array调用构造函数

我怎么能用call_user_func_array调用类的构造函数

不可能这样做:

$obj = new $class();
call_user_func_array(array($obj, '__construct'), $args); 
Run Code Online (Sandbox Code Playgroud)

因为如果构造函数有参数,则new将失败.

约束:我不控制我必须实例化的类,也不能修改它们.

不要问我为什么要做这个疯狂的事情,这是一个疯狂的考验.

php constructor

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

在没有服务器调用'accept'的情况下,套接字上的'connect'调用可以成功返回

服务器已创建一个套接字并绑定到一个端口,并启动一个循环中的线程来接受该连接.稍后循环由于异常导致线程退出而退出但是套接字仍然限制为端口.现在,如果客户端对此服务器进行"连接",则它会成功.这怎么可能?如果我理解正确,'connect'仅在服务器在侦听套接字上"接受"后返回.我在这里错过了什么吗?

sockets linux network-programming tcp

15
推荐指数
1
解决办法
5440
查看次数