use*_*743 6 mysql optimization fragmentation
我有一个20 gig表,每天都有大量的插入和更新.该表也经常被搜索.我想知道MySQL索引是否会碎片化,可能需要重建或类似的东西.
我发现很难找出哪个CHECK TABLE,REPAIR TABLE或类似的东西?
任何指导赞赏,我是db newb.
根据您使用的 MySQL 版本,您可以考虑创建表分区。您可以通过多种方式使用它,可以进行 id 哈希分区,也可以进行日期分区。
还有一些方法可以从逻辑上将“工作”数据与档案数据分开。考虑一个代表提要的大表。您使用的数据中 95% 可能是小于 14 或 28 天的数据,其余数据通常可以放入存档表中。
如果能够将数据块划分为多个服务器,那么有一些关于如何使用 MySQL 创建联合数据存储系统的精彩演示。Brad Fitpatrick 对 LiveJournal 的概述是一个很好的起点。
根据您存储的数据类型,您甚至可能根本不需要 MySQL。如果您的大部分查找都是主键获取,您可能需要研究 Redis 或 Cassandra 等键/值存储系统,看看它们是否满足您的需求。