Центр пользователя  |  Ваши сообщения  |  FAQ
Форум поддержки phpBB » phpBB 3.0.x » Поддержка phpBB 3.0.x

Место на сервере

Помощь в установке, настройке и использовании phpBB 3.0.x
Пожалуйста, помните, что существуют: Поиск, Правила форума
Возможно, ответ на Ваш вопрос уже имеется: Документация, Статьи, Накопленный опыт
Полезные материалы по этой теме: Инструкция по установке форума, Конвертеры

Сообщение 14 май 2012, 18:09

Подскажите сколько достаточно места на сервере для хранения форума?
FRoSS@
Активный участник
 
Сообщений: 58
Зарегистрирован:
16 апр 2012, 18:22
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.

Сообщение 14 май 2012, 18:47

Зависит от размера форума, количества вложений, т. д. Для комфортной работы нужно от 100 Mb дискового пространства. Но при выборе хостинга нужно ориентироваться не только на объем дискового пространства, но и на другие ресурсы сервера...
Искренне Ваш,
Евгений
Аватар пользователя
Tarus
Разработчик скинов
 
Сообщений: 1066
Зарегистрирован:
13 дек 2008, 14:26
Благодарил (а): 0 раз.
Поблагодарили: 115 раз.

Сообщение 28 авг 2012, 13:58

Форум, редко обновляемый, заполнил 71 мб бд.
В основном логи и сессии.
Пришлось придумывать : из таблицы phpbb_log удалять старые строки. И поставить небольшой скрипт в кронтаск. Удаление строк не давало эффекта, пока не выполнил дефрагментацию бд, используя класс.

База сократилась с 71 мб до 15 мб.

1Файл Класс оптимизации базы данных (дефрагментация таблиц)

Листинг файла mysqloptimizer.class.php
Код: выделить все
<?php
class TMySQLTableOptimizer
{
  // SQL to extract tables that needs optimizing.
  const
  osql = 'SELECT table_schema, table_name FROM information_schema.tables WHERE DATA_FREE > 0';
 
  // Connection link
  private static $dblink;
 
  // Connection properties
  public static $server   = 'localhost';
  public static $user     = 'root';
  public static $password = '';
 
  // databases list
  public static $table_list = array();
 
  // DBs to exclude
  public static $exclude_db = array('information_schema', 'performance_schema');
 
  // Two-dimension array of collected SQL errors. They are keyed by procedure.
  // Second key depends on failed function: Connect, Query, Fetch
  public static $errors = array();
 
private static function Query($sql) {
  $r = @mysql_query($sql, self::$dblink);
  $e = mysql_errno(self::$dblink);
  if ($e) self::$errors['failed_query'][$sql] = $e . ' ' . mysql_error(self::$dblink);
  return $r;
}
 
private static function Fetch($query) {
  $r = @mysql_fetch_array($query, MYSQL_ASSOC);
  $e = mysql_errno(self::$dblink);
  if ($e) self::$errors['failed_fetch'][(int)$query] = $e . ' ' . mysql_error(self::$dblink);
  return $r;
}
 
private static function Setup() {
  self::$dblink = @mysql_connect(self::$server, self::$user, self::$password);
  $e = mysql_errno();
  if ($e) self::$errors['failed_connect'][0] = $e . ' ' . mysql_error();
  return self::$dblink;
}
 
private static function Cleanup() {
  self::Query('FLUSH TABLES');
  mysql_close(self::$dblink);
}
 
// build array of all databases excluding in $exclude_db field
// if self::$table_list is array and contain non-zero elements, return it as result
private static function EnumDatabases(){
  if (!is_array(self::$table_list) || !count(self::$table_list)) {
    self::$table_list = array();     // clear DBs list
    $q = self::Query(self::osql);    // Build DBs list
    while ($db = self::Fetch($q)) {
      if (!in_array($db['table_schema'], self::$exclude_db))
        self::$table_list[] = $db['table_schema'] . '.' . $db['table_name'];
    }
    @mysql_free_result($q);
  }
}
 
// Main function. Call to optimize
public static function Optimize($server = '', $user = '', $password = '') {
  self::$server = empty($server) ? self::$server : $server;
  self::$user = empty($user) ? self::$user : $user;
  self::$password = empty($password) ? self::$password : $password;
  if (self::Setup()) {
    self::EnumDatabases();     // Enumerate all tables of all databases
    reset(self::$table_list);  // Move array pointer to the first element
    foreach(self::$table_list as $cur_table)
      $q = self::Query('OPTIMIZE TABLE ' . $cur_table);
  }
  self::Cleanup();
}
} //end class
?>
 


Запуск скрипта, выполняющего оптимизацию бд не принес никаких осложнений. Форум, админка также открываются.

Листинг crondel.php
Код: выделить все
<html>
<head> <title>Оптимизация базы данных форума PHPBB3</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
</head>
<body>
<?
//удаление лишних строк из таблицы $table_prefixlog
include '../forum/config.php';

$sql1 = "SELECT log_id FROM `".$table_prefix."log` ORDER BY log_id LIMIT 1;";
$sql2 = "SELECT log_id FROM `".$table_prefix."log` ORDER BY log_id DESC LIMIT 1;";

$conn = mysql_connect($dbhost, $dbuser, $dbpasswd)
      or die("Нет соединения с Базой Данных");
mysql_select_db ($dbname, $conn);
$result1 = mysql_query($sql1, $conn);
$result2 = mysql_query($sql2, $conn);

  $row1 = mysql_fetch_array($result1);
  $log_id_min = (int) $row1[0];
  $row2 = mysql_fetch_array($result2);
  $log_id_max = (int) $row2[0];
  echo $row1[0]." ".$log_id_max."<br>";

$logmax = $log_id_max - 1000;
$sql = "DELETE FROM `".$table_prefix."log` WHERE log_id >= ".$log_id_min." AND log_id <= ".$logmax.";";

echo $sql."<br>";

$result = mysql_query($sql, $conn);

if ($result) echo "Лишние таблицы форума phpbb 3 успешно удалены";


mysql_close($conn);


?>


<?php
//подключение класса оптимизации бд
    require ('mysqloptimizer.class.php');

//оптимизация базы данных (оптимизация фрагментированных таблиц)
    // Uncomment if needed
    // TMySQLTableOptimizer::$exclude_db = array();
    // TMySQLTableOptimizer::$table_list = array('my_db.first_table', 'my_db.second_table');
 
    TMySQLTableOptimizer::Optimize('', $dbuser, $dbpasswd);
    echo '<p>All done. Raw dump of possible errors: </p>';
    var_dump(TMySQLTableOptimizer::$errors);
?>
liutor
Новичок
 
Сообщений: 2
Зарегистрирован:
28 авг 2012, 11:30
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение 28 авг 2012, 14:03

liutor писал(а):Лишние таблицы форума phpbb 3 успешно удалены

то есть вы удаляете таблицы?
crash
Поддержка
 
Сообщений: 11331
Зарегистрирован:
27 янв 2009, 03:22
Благодарил (а): 1 раз.
Поблагодарили: 568 раз.

Сообщение 29 авг 2012, 11:13

crash писал(а):то есть вы удаляете таблицы?

удаление этой и других таблиц приводило к нерабочему режиму.
конечно, удаление строк из таблиц. опечатка.
liutor
Новичок
 
Сообщений: 2
Зарегистрирован:
28 авг 2012, 11:30
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.


Вернуться в Поддержка phpBB 3.0.x

 


  • Похожие темы
    Ответов
    Просмотров
    Последнее сообщение

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

Форум поддержки phpBB
2008 - 2017 © BB3x.ru - русская поддержка форума phpBB3
Создано на основе phpBB® Forum Software © phpBB Group
авторов модов
разработчиков скинов
русификаторов
и всех поклонников phpBB3