Такс, с аутентификацией я разобрался, вроде как при наличии одинаковых пользователей проходит. Осталось разобраться как теперь в базе форума при отсутствии пользователя создавать.
Сергей: в каждом приложении свои поля у пользователей, своя структура. В нашем приложении используется старая по всей видимости версия membership, в форуме новая, я сомневаюсь что их вообще возможно слить в одно.
Сергей: перевел хранение сессий в базу, для обоих приложений настроил machinekey, создал одинаковых пользователей с одинаковыми id, login и password. Авторизация не проходит, такое ощущение что сессия для каждого приложения создается своя
Как я понял, для работы этого решения необходимо это устанавливать на сервак и запускать демона. В моем случае это не возможно. Поэтому я и написал систему индексации через php + cron
Насчет сжатия не думаю что это мне подойдет. А насчет разделения, тут нечего делить, так они и так поделены, есть база со словами, есть база с новостями, а это база соответствий слов новостям. Т.е. это поисковый индекс. Можно конечно удалить поле ID. Просто уже за два дня база уже догоняет по размеру базу с новостями и стала размером 20мб, с такими темпами через год база станет размером в ~3,5 гига а эта перспектива меня совсем не улыбает.
Алексей Черемисин: как апач снесите ?) как же без него быть) вообще машина стоит с двумя ксенонами на ней стоит esxi, немного меньше половины ядер выделено на эту виртуалку.
0.028055
(SELECT a.id as id, a.title as title, a.alias as alias, a.catid as catid, a.introtext as introtext, a.fulltext as ftext, a.created as created, b.alias as calias, b.name as cname FROM k2_items as a left join k2_categories as b on a.catid = b.id WHERE a.published = 1 AND a.trash = 0 AND a.featured = 1 AND a.catid IN(138,137,129,114,113,97,54,40,39,37,9) AND ( a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2016-02-04 18:51:00' ) AND ( a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2016-02-04 18:51:00' ) ORDER BY a.created DESC LIMIT 4) UNION ALL (SELECT a.id as id, a.title as title, a.alias as alias, a.catid as catid, a.introtext as introtext, a.fulltext as ftext, a.created as created, b.alias as calias, b.name as cname FROM k2_items as a left join k2_categories as b on a.catid = b.id WHERE a.published = 1 AND a.trash = 0 AND a.featured = 1 AND a.catid IN(39) AND ( a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2016-02-04 18:51:00' ) AND ( a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2016-02-04 18:51:00' ) ORDER BY a.created DESC LIMIT 4) UNION ALL (SELECT a.id as id, a.title as title, a.alias as alias, a.catid as catid, a.introtext as introtext, a.fulltext as ftext, a.created as created, b.alias as calias, b.name as cname FROM k2_items as a left join k2_categories as b on a.catid = b.id WHERE a.published = 1 AND a.trash = 0 AND a.featured = 1 AND a.catid IN(40) AND ( a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2016-02-04 18:51:00' ) AND ( a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2016-02-04 18:51:00' ) ORDER BY a.created DESC LIMIT 4) UNION ALL (SELECT a.id as id, a.title as title, a.alias as alias, a.catid as catid, a.introtext as introtext, a.fulltext as ftext, a.created as created, b.alias as calias, b.name as cname FROM k2_items as a left join k2_categories as b on a.catid = b.id WHERE a.published = 1 AND a.trash = 0 AND a.featured = 1 AND a.catid IN(138) AND ( a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2016-02-04 18:51:00' ) AND ( a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2016-02-04 18:51:00' ) ORDER BY a.created DESC LIMIT 4) LIMIT 16;
0.024428
SELECT DISTINCT a.* FROM `persons_table` AS a LEFT JOIN users AS created_by ON created_by.id = a.created_by WHERE a.state = 1;
0.023117
SELECT a.*,uc.name AS editor FROM `infographics_data` AS a LEFT JOIN users AS uc ON uc.id=a.checked_out LEFT JOIN users AS created_by ON created_by.id = a.created_by LEFT JOIN categories AS catid ON catid.id = a.catid WHERE a.state = 1 AND a.catid = '100';
0.008889
SELECT b.rules FROM assets AS a LEFT JOIN assets AS b ON b.lft <= a.lft AND b.rgt >= a.rgt WHERE (a.name = 'com_infographics.data.22704' OR a.parent_id=0) GROUP BY b.id, b.rules, b.lft ORDER BY b.lft;
Алексей Черемисин: Я вас еще больше удивлю - это джумла(правда тут от нее осталось уже совсем мало).
Как тут все разбить? Это все запросы перелопачивать придется и запись в таблицу и вывод из нее.
На сайте куча переписанных и написанных модулей с нуля, куча скриптов которые взаимодействуют с этой таблицей. Запросы да тянут сразу все. Таблицу эту проэктировал не я.
Я бы вообще сделал пару полей и хватило бы. Мне кажется тут проще сайт полностью переписать с нуля чем эту таблицу разбить.
Алексей Черемисин: в чем там дело я не знаю, потому что в этом особо не смыслю, сайт в принципе грузится нормально, но на серваке все 16 гигов оперативы забито полностью а проц при запросах шибко напрягается что странно.
Что за книжка по архитектурам и нормализации и почему тут не поможет книжка по оптимизации мускула?