我有一个包含10000行的数据库表,我想使用以下内容选择几千个项目:
SELECT id FROM models WHERE category_id = 2
编辑:id
列是表的主索引。此外,该表还有category_id
上的另一个索引。
我的问题是对性能的影响是什么?查询运行缓慢吗?我是否应该考虑将我的models
表拆分为单独的表(每个类别一个表)?
答案 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代码。它是一个存储过程,当我想分析索引的影响或它们在我的数据库中的状态时,它可以帮助我很多。
请检查。