SocialEngine из inobdb в MyISAM и обратно

Тема в разделе "Социальные сети", создана пользователем serg122, 27 июл 2011.

Модераторы: arman29
  1. serg122

    serg122 Постоялец

    Регистр.:
    16 сен 2006
    Сообщения:
    68
    Симпатии:
    7
    Можно ли перевести базу данных из из inobdb в MyISAM а когда уже если много пользователей будет то обратно в inobd?
     
  2. danik

    danik

    Регистр.:
    26 июн 2007
    Сообщения:
    203
    Симпатии:
    53
    Нашел форум где обсуждают данный манёвр Я в этом не очень силён но прочитав понял что можно переводить без существенных последствий.
    http://sqlinfo.ru/forum/viewtopic.php?id=453
     
    serg122 нравится это.
  3. lift

    lift Читатель

    Заблокирован
    Регистр.:
    1 июл 2007
    Сообщения:
    2.226
    Симпатии:
    1.378
    Innodb и MyISAM это просто разные способы хранения и обработки информации самим мускулом. Пееркидывай как хочеш, единственное что может случиться, нагрузка может увеличится из за того, что сам скрипт будет оптимизированн под один формат а юзать будеш другой. Но в этом случае можно перегнать все обратно и все.
    Вообще по теме тебе чтоб не бегать между этими типами хранилища, проще попробывать сначала несколько модифицированный innodb попробывать.
    Добавь в конфиг мускуля строку "innodb_file_per_table"
    Она заставляет MySQL хранить каждую таблицу хранилища InnoDB в отдельном файле с названием вида "ИмяБазы/ИмяТаблицы.ibd".
    После перезапуска мускуля файлы для существующих таблиц создадутся и дефолтный "ibdata1" можно удалять.
    Данная манипуляция позволит работать так, как будто у тебя в мускуле еинственная таблица и снизит нагрузку/увеличит скорость работы.
     
    serg122 нравится это.
  4. serg122

    serg122 Постоялец

    Регистр.:
    16 сен 2006
    Сообщения:
    68
    Симпатии:
    7
    Спасибо, я не уверен но кажется быстрый стал работать скрипт, особенно в insert и update:)
    кроме того возможно что конфигурации не соответствуют параметрам сервера?
    Код:
    [client]
    port        = 3306
    socket        = /var/lib/mysql/mysql.sock
    default-character-set = cp1251
    [mysqld]
    port        = 3306
    socket        = /var/lib/mysql/mysql.sock
    innodb_data_home_dir = /var/lib/mysql/
    innodb_data_file_path = innodb1:100M;innodb2:100M:autoextend
    innodb_file_per_table
    #skip-innodb
    skip-locking
    key_buffer = 2M
    query_cache_limit=1M
    query_cache_size=4M
    max_allowed_packet = 1M
    table_cache = 64
    sort_buffer_size = 64K
    read_buffer_size = 256K
    read_rnd_buffer_size = 256K
    net_buffer_length = 2K
    thread_stack = 128K
    server-id    = 1
    default-character-set=cp1251
    character-set-server=cp1251
    collation-server=cp1251_general_ci
    # init-connect="SET NAMES cp1251"
    skip-character-set-client-handshake
    [mysqldump]
    quick
    max_allowed_packet = 16M
    default-character-set = cp1251
    [mysql]
    no-auto-rehash
    default-character-set = cp1251
    [isamchk]
    key_buffer = 4M
    sort_buffer_size = 4M
    [myisamchk]
    key_buffer = 4M
    sort_buffer_size = 4M
    [mysqlhotcopy]
    interactive-timeout
    
    vps 1500Mhz и 512Mb RAM
     
  5. lift

    lift Читатель

    Заблокирован
    Регистр.:
    1 июл 2007
    Сообщения:
    2.226
    Симпатии:
    1.378
    serg122
    Я дико извиняюсь, но с с SE не дружу вообще. Мне даже негде посомтреть, какие там таблици и как они работают.
    Если у тебя есть возможность, погоняй несколько дней сайт в нормальном режиме а после этого посмотри в phpmyadmin статистику. Там просто тупо и глупо подсвечивается красным, когда тех или иных переменных не хватает постоянно. Их и поправь. В основном это будет игра с буферами чтения, записи, кеши всевозможные и прочее.
    Ну и из того, что в твоем конфиге просто не увидел
    thread_concurrency
    innodb_thread_concurrency
    это параметры, улучшающие работу в потоках для мускуля просто и для мускуля в иннодб конкретно. Впиши их в конфиг, параметры укажи как количество ядер у твоей виртуалки, умноженное на 2. Тоесть если у тебя 1 ядро, то
    thread_concurrency = 2
    innodb_thread_concurrency = 2
    если 2, то
    thread_concurrency = 4
    innodb_thread_concurrency = 4
    и так далее, думаю ты понял.

    А вообще, глобально, на самом деле сложно предлагать что то, не зная как скрипт работает и что он обычно юзает. Не бывает идеальных вариантов, я себе иногда месяцами подправляю конфиги. Я вот то, что сказал, это просто вещи, котоыре по какой то причине не идут сразу в дефолтном конфиге, хотя им там самое место :)
     
    serg122 нравится это.