Помогите оптимизировать MySQL

Как-то написал мне хостер в превышении размера моей базы MySQL более чем на 1 гиг. Посему, поковырялся в базе и нашел куча информации, которая по моему мнению подлежит ликвидации. Например одна из них prefix_session.



Для чего вообще нужен prefix_session? Можно ли почистить таблицу?

[Решено] Множатся сессии в БД

Возникла следующая проблема: в таблице prefix_session очень много наплодилось сессий для каждого пользователя при том отличается только session_date_create и иногда IP сессии. При том для этих всех сессий пользователя session_date_last одинаковое, а это создаёт проблему для раздела /people/online, поскольку один пользователь может занимать там аж 25 первых строчок… и таким образом только он будет показан в списке.
В чём может быть проблема?

UPD. Решение 1.
Пока решил следующим образом:
В файле User.mapper.php добавил, то что отмечено:
public function UpdateSession(ModuleUser_EntitySession $oSession) {
		$sql = "UPDATE ".Config::Get('db.table.session')."
			SET
				session_ip_last = ? ,
				session_date_last = ?
			WHERE user_id = ? 
                        AND session_key = ? -- тут
		";
		return $this->oDb->query($sql,$oSession->getIpLast(), $oSession->getDateLast(),
                        $oSession->getUserId(),
                        $oSession->getSessionKey() // и тут
                );
	}

Это позволяет обновлять только текущую сессию пользователя, таким образом остальные копии (дубликаты) сессии пользователя не будут обновлены и не будут мусорить. На только почистить старые сессии из БД.

UPD. Причина.
Причиной послужило то, что когда-то был включён плагин «Remember me», который преобразовывает таблицу сессий. Но после отключения он должен всё вернуть на место, чего по какой-то причине не произошло (из-за неправильного отключения плагина: из файла plugins.dat; или из-за неисправности кода плагина; не могу быть уверен в правильном варианте).
Спасибо, vdenu .

Решение 2 (правильное).
Сделать поле user_id уникальным. Перед этим может понадобится очистить таблицу.

В самом плагине есть такой запрос:
TRUNCATE TABLE `prefix_session`; ALTER TABLE `prefix_session` DROP INDEX `user_id` , ADD UNIQUE `user_id` ( `user_id` );

Вопрос по поводу БД

Есть 2 домена.
Можно ли использовать одну бд на 2 домена под осью лс на одном хосте?
Если я правильно понимаю все посты будут размещены на обоих доменах, логины итд;
Вывод: иметь 2 в моем случае новостных ресурса, тратя время по делу только на 1.

Почему запрос к БД insert возвращает false, но добавляет при этом данные в БД?

Здравствуйте.
Проблема в следующем: добавляю при помощи нижеследующего кода строку в таблицу, функция при этом должна возвращать статус операции — true или false. Путем экспериментов установил, что она всегда возвращает false, но сам запрос на добавление проходит успешно (данные в таблице появляются).
Попытки вывести mysql_error \ mysql_errno ничего не дали (пустая строка и 0 соответственно).

Помогите, пожалуйста, разобраться, с чем это может быть связано?..

Собственно, код метода (в маппере, вызывается из класса):

public function AddTopicForPromote(ModuleTopic_EntityTopic $oTopic, $vPrice, $vAmount) {
		$sql = "INSERT INTO ".Config::Get('db.table.topic_promote_params')." 
			( 
				topic_id,
				promote_price,
				promote_amount,
				status
			) VALUES (?d, ?d, ?d, ?d)";

		if ($this->oDb->query($sql,$oTopic->getId(),$vPrice,$vAmount,0)) {
			return true;
		}
		return false;
	}

Не получается сделать дамп БД

Создаю БД, ставлю лайвстрит, захожу через phpmyadmin, делают импорт ранее сохраненной БД и получается — ошибка. Посмотреть ее можно пройдя по адресу kuro4ki.com. Господа, выручайте, всю голову сломал уже:)

Не создалась таблица после миграции БД

Всем доброго времени суток!
Наконец дошли руки обновить LS с версии 0.4.2 на последнюю, но при миграции БД возникла ошибка.
SQL Error: Table 'social.prefix_user_field' doesn't exist (или что-то очень похожее)

Теперь при заходе на страницу пользователя (например iu8.bmstu.ru/profile/ponf/ ) возникает следующая ошибка
SQL Error: Table 'social.prefix_user_field' doesn't exist at /var/www/html/classes/modules/user/mapper/User.mapper.class.php line 859
Array ( [code] => 1146 [message] => Table 'social.prefix_user_field' doesn't exist [query] => SELECT f.*, v.value FROM prefix_user_field as f LEFT JOIN prefix_user_field_value as v ON f.id = v.field_id WHERE v.user_id = 1 and f.type IN ('') [context] => /var/www/html/classes/modules/user/mapper/User.mapper.class.php line 859 )

Подскажите пожалуйста, как исправить эту ошибку?

Ошибка БД при начальной установке

Добрый день!
Впервые решила воспользоваться вашим движком. Скачала и загрузила ls 1.0.3 на локальный сервер (open server), после открытия сайта удалила папку install и получила ошибку:

SQL Error: Table 'social.prefix_topic' doesn't exist at C:\OpenServer\domains\food\classes\modules\topic\mapper\Topic.mapper.class.php line 257
Array ( [code] => 1146 [message] => Table 'social.prefix_topic' doesn't exist [query] => SELECT count(t.topic_id) as count FROM prefix_topic as t, prefix_blog as b WHERE 1=1 AND t.topic_publish = 1 AND t.topic_date_add >= '2013-05-25 22:00:00' AND ((b.blog_type='open')) AND t.blog_id=b.blog_id; [context] => C:\OpenServer\domains\food\classes\modules\topic\mapper\Topic.mapper.class.php line 257 ).

Опыта в сфере программирования немного, но «лишних движений» вроде пока не делала. Заранее спасибо!

Помогите разобраться с активностью (решено на половину)

Ситуация следующая: в последнее время начались спам атаки на сайты. Для себя решаю так: поставил минимальный рейтинг на постинг -1, после того, как появляются спам-топики минусую их, а затем удаляю. Спамер достигает запрета на постинг и висит мертвым грузом, но не в этом суть…

Проблема в другом — сегодня обнаружил, что страница всей активности заканчивается сегодняшним утром — временем, когда минусовал и удалял топики. После детального просмотра сайта обнаружил, что проблема присутствует на всех страницах, связанных с активностью и действием «голосование за топик», так, например, на странице активности «я слежу» все хорошо до тех пор пока в блоке настройки событий не отмечена галка «голосование за топик» и события не дойдут до голосования за несуществующий топик, дальше все обрывается.

На сколько я понимаю, проблема где-то в БД (типа той, что когда-то возникала с прямым эфиром), может кто сталкивался и решил проблему, подскажите как, пожалуйста.

PS: В общем вылечил сам — из таблицы prefix_stream_event БД удалил все события добавления ныне несуществующих топиков. Но, наверняка, сама проблема осталась и в следующий раз в аналогичной ситуации придется поступать также…