10000行 - 根据where子句选择 - 性能

时间:2014-08-08 17:13:07

标签: mysql sql performance

我有一个包含10000行的数据库表,我想使用以下内容选择几千个项目:

SELECT id FROM models WHERE category_id = 2

编辑:id列是表的主索引。此外,该表还有category_id上的另一个索引。

我的问题是对性能的影响是什么?查询运行缓慢吗?我是否应该考虑将我的models表拆分为单独的表(每个类别一个表)?

4 个答案:

答案 0 :(得分:3)

这就是数据库引擎的设计目标。只需确保在WHERE子句中使用的列上有索引。

答案 1 :(得分:1)

您可以尝试此操作来获取100条记录

SELECT id FROM models WHERE category_id = 2 LIMT 100

此外,您可以在该列上创建索引以快速检索结果

ALTER TABLE `table` ADD INDEX `category_id ` (`category_id `)

修改: -

如果您在列上创建了索引,那么您不必担心性能,数据库引擎足够智能以处理性能。

  

我的问题是对性能的影响是什么?会的吗?   查询运行缓慢?我应该考虑将我的模型表拆分成   单独的表格

不,你不必拆分你的桌子,因为这对你的表现没有帮助

答案 2 :(得分:0)

我对SQL很新,但我会首先索引列

答案 3 :(得分:0)

我同意R.T。的解决方案。另外我可以推荐以下链接:

https://indexanalysis.codeplex.com/

下载sql代码。它是一个存储过程,当我想分析索引的影响或它们在我的数据库中的状态时,它可以帮助我很多。

请检查。