首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >优化数据库

优化数据库
EN

Stack Overflow用户
提问于 2020-10-02 11:44:43
回答 1查看 69关注 0票数 1

我有一个关于如何优化我的数据库的问题:

我有第一个表,其中我设置了一个元素(板块)的列表及其所有的几何定义,看起来如下:

代码语言:javascript
复制
CONTRACT | NAME | CONTOURS |  HOLES  | SCRIBING
C1       | D001 | bigString|bigString|bigString
C1       | D003 | bigString|bigString|bigString
C2       | D003 | bigString|bigString|bigString
...

然后在第二张桌子上,我有一个盒子的列表(事实上,它们是第一张桌子上的大盘子,我称它为“盒子”,以避免混淆),在每个盒子里,我有一个元素列表,并像这样定义它。

代码语言:javascript
复制
ID     | NAME | NAME_ELEMENT | CONTRACT_ELEMENT| QUANTITY | 
10001  | BOX1 |         D001 |               C1|     100  |
10001  | BOX1 |         D003 |               C1|     100  |
10001  | BOX1 |         D003 |               C2|     100  |
...

我没有在ID上链接,但是在合同和名称上,它是volontary(第一个表只是具有几何定义的表)。

问题是,我有一个带有框列表的ListView,当我单击一个框时,我需要显示该框中的所有元素。现在我只是做了这样的事情:

代码语言:javascript
复制
    foreach(Plate plate in contexte.SelectedBox)
    {
       plate.GetGeometry();
    }

编辑:忘了说,我的函数GetGeometry只是一个SQL请求"SELECT * FROM DEFINITION_TABLE DEFINITION_TABLE=‘c1’和NAME='D001‘。

它工作得很好,但是当我有一个大盘子,里面有隐藏元素的时候,它是非常长的,因为它会发出数百个选择请求。

我看到了解决这个问题的两种方法:

  1. 在我的框定义表中,添加详细信息的几何信息。但这是否正确,因为它意味着复制两个表中的所有定义。

  1. 使SQL请求类型为

代码语言:javascript
复制
SELECT * 
FROM TABLE_DEFINITION 
WHERE (CONTRACT='C1' OR CONTRACT='C2') AND (NAME='D001' OR NAME='D003'...)

  1. 请求可能是

代码语言:javascript
复制
SELECT * 
FROM TABLE_DEFINITION 
WHERE (CONTRACT='C1' AND NAME='D001') OR (CONTRACT='C1' AND NAME='D003') OR (CONTRACT='C2' AND NAME='D003')...

但如果我有数百个细节,判决将是非常长的。

我觉得第一种选择不是好的,可以用第二种。你对此有什么建议?为MySQL做这么长的句子可以吗?我的刑期被限制了吗?

编辑:谢谢你编辑帖子,你能解释一下你是如何在表格中添加空格的吗?我增加了空格,但是堆栈自动删除了它们?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-02 12:06:43

使用表格

代码语言:javascript
复制
WHERE (CONTRACT, NAME) IN (('C1','D001'), ('C1','D003'), ('C2','D003'), ...)

它需要更少的字节。

可以对MySQL进行如此长的查询吗?

查找max_allowed_packet值-您的查询文本大小不能超过它(默认为64兆字节)。

记住-如果您的文字列表超过了~10个元素,MySQL将在查询中使用它之前对其进行排序。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64170968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档