Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Оптимизация базы данных MySQL

Опубликовано:

Подскажите, как можно оптимизировать базу данных форума? Сейчас он практически пустой, есть всего лишь пара сообщений и тем. А вот база данных занимает 12.9 мегабайт из них 10.7 мегабайт весят вот эти таблицы:

 

core_sys_lang_words - 2.9 мб.

skin_cache - 4.1 мб.

skin_templates - 1.3 мб.

skin_templates_previous - 2.4 мб.

 

Версия форума ipb 3.1.4

Изменено пользователем Jack

Рекомендованные сообщения

Опубликовано:

Меня интересует только оптимизация этого монстра.

поставьте на пробу Битрикс (месяц можно бесплатно), например редакции "Стандарт" и поглядите что там есть. Тогда Вы поймете, что IPB по сравнению с ней - песочница. Базы Битрикс в принципе не сильно пухнут, но кеши... Это же ужас кокой то.. При 20 тыс сообщений за 2 недели кеш вырос до 600 мегабайт при посещаемости 30 посетителей в сутки и 10 активных пользователях!

 

Что же Вы так сильно беспокоитесь за какие-то 12 Мб? Ну пусть база "распухнет" до 50, 100 мегабайт, чего беспокоиться то? Кто Вас так настроил?

Честно, не на то что нужно тратите время.

  • 4 месяца спустя...
Опубликовано:

Всех приветствую :)

 

Сорри, что поднимаю старую тему, но вопрос актуальный.

 

В общем, такая ситуация - есть форум IPB, сейчас версия 3.0.5, ранее был 2.3.6, обновил год назад. Размер базы данных перевалил уже за 400 мегабайт и продолжает расти. Сейчас постоянные ошибки SQL - я так понимаю из-за размера. Пытался обновить до новой версии - не выходит. Видно дело в неоптимизированности БД. Кто что подскажет - буду признателен.

 

По теме интересует вот что. Таблицы логов только что почистил, но помимо этого остались не менее грузные таблицы:

 

ibf_content_cache_posts Обзор Структура Поиск Вставить Очистить Удалить 31,425 MyISAM utf8_general_ci 29.0 МБ

ibf_core_share_links_log Обзор Структура Поиск Вставить Очистить Удалить 52,282 MyISAM utf8_general_ci 11.4 МБ

ibf_inline_notifications Обзор Структура Поиск Вставить Очистить Удалить 50,316 MyISAM utf8_general_ci 61.9 МБ

ibf_skin_cache Обзор Структура Поиск Вставить Очистить Удалить 238 MyISAM utf8_general_ci 11.6 МБ 5.9 МБ

 

Интересно, насколько они необходимы. Notifications - я так понимаю это уведомления, удаление которых ничего не навредит?

Опубликовано:

Размер базы данных перевалил уже за 400 мегабайт и продолжает расти.

А что она должна делать, уменьшатся? Конечно при живом форуме она будет расти, и чем больше активность тем быстрее она растет. На неактивном форуме бд может увеличится только за счет логов (поисковые боты, задачи).

 

Сейчас постоянные ошибки SQL - я так понимаю из-за размера.

Неправильно понимаете. SQL ошибки могут могут вывалится уже потому, что версия 3.0.5 была очень сырой. 400 МБ в мире БД это не размер. И да, почему бы сами логи ошибок не посмотреть и не заниматься гаданием?

 

ibf_content_cache_posts - кэши постов.

ibf_inline_notifications - нотификации. Теоретически можно очистить.

ibf_skin_cache - скины. Трогать нельзя.

Опубликовано:

Вот примерно:

 

Error: 2013 - Lost connection to MySQL server during query

IP Address: 207.46.199.50 - /index.php?showtopic=804&st=2580&p=112091&

mySQL query error: SELECT pid,topic_id FROM ibf_posts WHERE topic_id=804 AND queued=0 ORDER BY pid asc LIMIT 2580,30

 

Error: 2013 - Lost connection to MySQL server during query

IP Address: 92.255.215.16 - /index.php

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

mySQL query error: SELECT t.tid, t.title, t.posts, t.views, t.forum_id, p.topic_id, p.author_id, p.post, p.pid, p.author_id, p.post_date, p.topic_id, m.member_group_id, members_seo_name, m.members_display_name FROM ibf_topics t LEFT JOIN ibf_posts p ON ( t.tid=p.topic_id ) inner JOIN (select topic_id, max(post_date) as datapost from ibf_posts group by topic_id) as ultimopost on ultimopost.datapost = p.post_date LEFT JOIN ibf_members m ON ( m.member_id=p.author_id ) WHERE p.queued = 0 and t.approved = 1 and t.posts > 0 and t.forum_id in(113,24,365,362,490,31,36,47,222,5,14,352,6,66,903,19,22,380,20,77,79,210,228,21,991,25,266,537,27,35,262,29,56,158,159,32,86,150,48,51,299,55,57,54,339,236,353,300,50,301,302,303,728,157,333,446,1035,201,203,96,97,413,414,436,223,103,407,105,231,605,116,117,118,216,108,964,115,420,107,205,106,126,1021,1022,1023,1024,1025,127,802,820,803,809,250,264,665,666,667,668,220,212,168,2,130,911,912,913,214,215,790,794,795,914,341,928,176,381,360,182,183,336,191,192,193,194,200,267,257,202,204,775,206,1020,160,221,672,970,349,139,101,123,224,16,389,165,80,162,163,185,244,254,308,239,967,128,111,112,211,219,344,226,230,296,98,190,334,366,786,335,338,351,340,354,355,95,363,670,730,364,1005,981,4,38,1,13,26,58,53,28,37,403,399,91,110,172,692,598,525,601,600,408,517,409,761,777,695,1034,635,724,1014,518,1017,526,788,789,641,643,645,642,637,683,682,684,806,808,680,720,438,555,700,673,783,784,785,480,731,736,732,733,943,734,735,778,1018,1009,953,744,757,746,745,797,737,738,910,1019,814,831,759,796,791,792,793,800,805,933,942,954,1011,1012,1016,955,974,975,978,1015,988,990,979,980,982,997,995,1030,1006,927,1001,959,941,1007,1008,924,956,756,1013,481,246,457,603,243,877,916,1027,1038,1028,1029,1036) and t.forum_id in(867,408,29,700,737,524,933,997) ORDER BY p.post_date desc LIMIT 5

Error: 2002 - Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

IP Address: 66.249.71.53 - /index.php?showuser=2885&f=481

Error: 2013 - Lost connection to MySQL server during query

IP Address: 31.192.105.100 - /index.php?&&unlockUserAgent=1

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

mySQL query error: UPDATE ibf_members SET member_login_key_expire=1333689244 WHERE member_id=1886

 

И так далее... Если нужно - могу скинуть полный отчет об ошибках.

 

В общем, как вы считаете - это дело в самой версии IPB? Стоит ее обновить и ошибки исчезнут сами собой?

Опубликовано:

Error: 2013 - Lost connection to MySQL server during query

Сводится к тому что сервер не тянет, не хватает ресурсов. Можете обновится, но если хостинг 3$, под ИПБ 3.1+ стоит задуматься о его смене/переходе на другой тарифный план.

Опубликовано:

У вас собственный сервер? Если нет обратитесь к хостеру.

  • 4 недели спустя...
Опубликовано:

Опять подниму т.к. вопрос по поводу skin_cache: Весит 27 метров, это нормальный размер или нет, установлено 1 скин помимо стандартных. Внутри вот такое:

	cache_id	int(10)			Нет	Нет	AUTO_INCREMENT	 	 	 	 	 	 	
cache_updated	int(10)			Нет	0		 	 	 	 	 	 	
cache_type	varchar(200)	utf8_general_ci		Нет			 	 	 	 	 	 	 
cache_set_id	int(10)			Нет	0		 	 	 	 	 	 	
cache_key_1	varchar(200)	utf8_general_ci		Нет			 	 	 	 	 	 	 
cache_value_1	varchar(200)	utf8_general_ci		Нет			 	 	 	 	 	 	 
cache_key_2	varchar(200)	utf8_general_ci		Нет			 	 	 	 	 	 	 
cache_value_2	varchar(200)	utf8_general_ci		Нет			 	 	 	 	 	 	 
cache_value_3	varchar(200)	utf8_general_ci		Нет			 	 	 	 	 	 	 
cache_content	mediumtext	utf8_general_ci		Нет	Нет		 	 	 	 	 	 	 
cache_key_3	varchar(200)	utf8_general_ci		Нет			 	 	 	 	 	 	 
cache_key_4	varchar(200)	utf8_general_ci		Нет			 	 	 	 	 	 	 
cache_value_4	varchar(200)	utf8_general_ci		Нет			 	 	 	 	 	 	 
cache_key_5	varchar(200)	utf8_general_ci		Нет			 	 	 	 	 	 	 
cache_value_5	varchar(200)	utf8_general_ci		Нет			 	 	 	 	 	 	 
cache_key_6	varchar(200)	utf8_general_ci		Нет			 	 	 	 	 	 	 
cache_value_6	varchar(200)	utf8_general_ci		Нет	

Опубликовано:

Это не внутри, это снаружи такое.) То есть это просто список полей. Весят же в основном данные. Но 27 метров - паталогия для этой таблицы, имхо.

dD49ekOw.png

Тоже 1 скин, помимо дефолтных.

Опубликовано:

Странно... а как тогда её почистить? Через PHPmyadmin можно такое сделать?

 

посмотрел у меня записей в ней 1,127

Опубликовано:

я так понял что надо залесть в папку skin_cache и удалить не нужные ID?

 

Глянул в папке две лишние папки ID0 ID19 но они мало весят, основную массу составляют файлы в корне лежащие settingEmpty? emailWrapper,ipsDriverError, ipsServerError. Чего за файлы такие и зачем они, знает кто?

Опубликовано:

Не знаю. По какому признаку чистить то собираетесь? Может у вас там кастомизированных страниц куча, типа индивидуального фона в профилях или уникальных страниц в контенте? Ну, попробуйте обновить полностью данные базового стиля для всех приложений из xml, потом перекешируйте все. АЦ - Вид - Инструменты.

Опубликовано:

я так понял что надо залесть в папку skin_cache и удалить не нужные ID?

 

Глянул в папке две лишние папки ID0 ID19 но они мало весят, основную массу составляют файлы в корне лежащие settingEmpty? emailWrapper,ipsDriverError, ipsServerError. Чего за файлы такие и зачем они, знает кто?

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

Опубликовано:

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

Я являюсь администратором сервера :)

Опубликовано:

Угу, тогда не плохо бы узнать что нибудь о структуре сервера. Искать файлы MySql в кеше форума - несколько наивно, для администратора.

Изменено пользователем Dmitriy427

Опубликовано:

в плане о структуре? на Linux он :)

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.