我有一个20 gig的表,每天都有大量的插入和更新。该表也经常被搜索。我想知道MySQL索引是否会碎片化,可能需要重建或类似的东西。
我发现很难找出哪个CHECK TABLE,REPAIR TABLE或类似的东西?
任何指导意见,我是db newb。
答案 0 :(得分:1)
根据您使用的MySQL版本,您可以考虑创建表分区。您可以通过多种方式使用它来进行ID哈希分区或日期分区。
还有一些方法可以从归档数据中逻辑地分离“工作”数据。考虑一个代表Feed的大表。可能是小于14或28天的数据是您使用过的数据的95%,其余数据通常可以放在存档表中。
如果能够分割成代表数据块的多个服务器是可能的,那么有一些关于如何使用MySQL创建联邦数据存储系统的精彩演示。 Brad Fitpatrick's overview of LiveJournal是一个很好的起点。
根据您存储的数据类型,您可能根本不需要MySQL。如果您的大部分查询都是主键,您可能需要调查Redis或Cassandra等键/值存储系统,以确定它们是否符合您的需求。