0

假设我有一长串名称(大约 10 000 个)存储在 MySQL 数据库中。将它们分成多个表是否有任何用处,例如。按名称中的第一个字母?(表 A、表 B 等)它会加快查询速度吗?

谢谢

4

4 回答 4

3

对于一个体面的硬件上的现代 RDBMS 来说,10k 条记录是相当小的数字。除非您显示更多细节,否则我会避免拆分表格 - 没有性能优势,而维护和开发将变得不必要的复杂。

于 2012-05-17T19:08:43.383 回答
2

我同意 10k 条记录根本不算多。确保使用索引来加快搜索速度。在编写查询和使用索引时学习使用Explain 。

另一个好主意是始终限制您的查询,除非您必须在一页上列出所有 10,000 个名称。例如,有一个列表并将显示一次限制为 100 个名称,并带有分页。

你会有更快的搜索速度,但我无法想象在你没有第一个字母的情况下搜索某些东西时必须编写会遍历 26 个不同表的代码。

于 2012-05-17T19:15:58.270 回答
2

我不这么认为。10 000 不算多。500万 是另一个故事。用好索引,让它们在一起。

于 2012-05-17T19:09:54.047 回答
0

no -对表进行分区。同一类型的数据属于一个表。您可以对多个索引进行分区 - 我将看看对列的子字符串进行分区只是为了我自己的利益,但它应该是可能的。

于 2012-05-17T19:09:21.130 回答