Ответ
AK666 27.10.2013 16:08
// таблица сообщений
tableMessages: ID int autoinc KEY, FromUserID int, ToGroupID int, Date datetime, Msg TEXT
// таблица справочник "папок" и "меток" (для каждого пользователя -- своя)
dirFolders: ID int autoinc KEY, UserID int, ParentID int, Name varchar
dirLabels: ID int autoinc KEY, UserID int, Name varchart
// таблица привязок сообщение-метка и сообщение-папка
msgFolders: ID int autoinc KEY, UserID int, MsgID int, FolderID int, Changed timestamp
msgLabels: ID int autoinc KEY, UserID int, MsgID, LabelID int, Changed timestamp
==
tableGroups = примерно 1,5 тыс строк
tableUsers = примерно 40-50 тыс записей
tableMessages = окло 2-3х млн строк на сейчас
dirFolders: чуть больше 300тыс
dirLabels: около 100тыс
на сейчас бывает (в пик) около 2 тыс/сек инсертов в tableMessages
при отджаче пользователям списков по выборке (запрос не целиком)
SELECT FROM tableMessages INNER JOIN msgFolders WHERE UserID = ?
ощущаются притормозы уже на 2х - 3х тыс активных пользователях (т.е. запросов до 100 в сек)
по планам исполнения - все хорошо, посему очень хочется втулить какойнить memcached