Това всъщност е дискусия за Singe - Table - Inheritance срещу Table Per Class Inheritance и пропускане на обединено наследяване. Първият е свързан с метод A, вторият с вашия метод B и метод C би бил да имате всички идентификатори на вашите публикации в една таблица и да отлагате специфични атрибути за група или потребител - публикации ijto различни таблици. Въпреки че винаги имате таблица с голям размер има своите отрицателни въздействия, свързани с пълните сканирания на таблици, подходът за разделяне на таблици също има свои собствени. Зависи от това колко често приложението ви трябва да има достъп до целия списък с публикации вместо да извлича само определени типове публикации. Друго съображение, което трябва да вземете под внимание, е разделянето на данни, което може да се направи с MySQL или Oracle Database, напр. което е начин за организиране на вашите данни в таблици с възможности за жизнения цикъл на информацията (кои данни са достъпни кога и колко често, може ли част от тях да бъдат преместени и компресирани, намаляване на размера на базата данни и увеличаване на скоростта за достъп до лявата част на данните в таблица), която основно е разделена на три основни техники:разделяне, базирано на диапазон, разделяне, базирано на списък и разделяне, базирано на хеш. Други функции, които не се поддържат толкова често, свързани с намаляване на размерите на таблиците, са тези, които се занимават с вмъкване с времеви клеймо, което обезсилва вмъкнатите данни автоматично след определен период от време е изтекъл. Това, което наистина е основно решение за проектиране на приложение и може да повиши производителността, е да се направи разлика между достъпите за четене и запис в базата данни на ниво приложение. Помислете за MySQL - Backend:Тъй като достъпите за запис очевидно са по-критични за производителността на базата данни, отколкото достъпите за четене до вас може да настрои MySQL - екземпляр за запис в базата данни и друг като репликант o f това за достъпите за четене, въпреки че това също подлежи на обсъждане, главно когато става дума за RDT (решения в реално време), където абсолютната съгласуваност на данните във всеки даден момент е задължителна. Използването на обектни пулове като слой между вашето приложение и базата данни също е техника за подобряване на производителността на приложението, въпреки че все още не знам за съществуващи решения в света на PHP. Oracle Hot Cache е доста сложен пример за това. Все пак можете да създадете свой собствен такъв, внедрен върху база данни в паметта или с помощта на memcache.