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

数据库查询优化mySQL
EN

Stack Overflow用户
提问于 2014-12-27 03:01:36
回答 2查看 46关注 0票数 0

Hello想知道更好的方法是什么:目标数据库只有大约100,000行

有一张像下面这样的桌子:

AllCars

代码语言:javascript
复制
ID | Car_Name |    Car_Model    | Car_Type  | Car_Features | Car_Location
______________________________________________________________________
1  |  Nissan  | Ultima Explorer |   4D      | Airbag Power | TX

SQL: Select 'X' from AllCards where Car_Model LIKE '%ultima%';

或者把它分成几张桌子

Car_Types

代码语言:javascript
复制
ID | Car_Model |
----------------
1  | Nissa Ultima |

并编写联接:

SQL:

代码语言:javascript
复制
   SELECT'X' from Car_Types c 
     JOIN AllCars a 
     ON a.ID = c.ID  
     WHERE Car_Model = 'Ultima';
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-27 03:37:27

我很困惑。这两个查询并不相同。在一种情况下:

代码语言:javascript
复制
where Car_Model LIKE '%ultima%'

在另一个方面:

代码语言:javascript
复制
WHERE Car_Model = 'Ultima'

如果您认为'Ultima'car_model的一个有效值,我建议您将'Ultima'存储在字段中,没有其他内容。也许您应该有一个模型的多部分标识符。

在任何情况下,无论是将原始数据存储在一个表中还是使用引用表--只要您一致地存储该值,都不会有太大的区别。“始终如一”往往导致使用参考表方法,这将是第二种方法。但是,关键是将不同的组件分开,这样您就可以在比较中使用相等,而不是通配符。

票数 2
EN

Stack Overflow用户

发布于 2014-12-27 04:02:16

将数据规范化几乎总是更好。但是,必须确保即使是最频繁的查询也不执行联接。

你的问题没有正确或错误的答案。这都取决于您的用例、您要存储的数据类型、查询的频率以及查询的方式,这意味着最频繁地查询哪些字段。因此,如果您能够提供更多关于查询的性质和频率的详细信息,将会更好。

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

https://stackoverflow.com/questions/27663997

复制
相关文章

相似问题

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