如何管理庞大的数据库表以最大限度地减少MySql中的获取时间

时间:2012-08-03 10:33:00

标签: mysql zend-framework zend-db partitioning

我有一个包含大约5百万行的巨大数据库表。现在,检索记录会使服务器在某些情况下变慢。我现在如何管理桌子,因为它在这些日子里不断增长。

我正在考虑每年制作一些归档技术,例如每年将完整的表分解成许多小表,但这使我在编码方面花费了很多变化。我必须从数据库中更改查询的完整结构。因此,很可能在项目的大多数地方都会发生变化。

我还能做些什么来减少数据库表中记录的获取时间?我可以采用其他任何技术来避免代码中的许多变化吗?

提前致谢

2 个答案:

答案 0 :(得分:2)

您可以使用MySQL中的PARITION BY RANGE水平地轻松PARITION表格。

此外,如果表中有许多列,则可以通过垂直分区方法将该表拆分为两个或多个表。

还可以在表上添加适当的索引,最好是群集或covering索引,并使用EXPLAIN测试查询的性能。

答案 1 :(得分:1)