Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Lineage II (https://forum.zone-game.info/forumdisplay.php?f=34)
-   -   MyISAM!!! (https://forum.zone-game.info/showthread.php?t=8830)

OkoPwnz 28.06.2010 14:43

InnoDB!!!
 
Помогите разобраться с InnnoDB
Как включить опцию InnoDB что б мускул поддерживал таблици с этим расширением

PROGRAMMATOR 28.06.2010 15:01

Re: InnoDB!!!
 
Удалить с конфига MySQL строку skip-innodb

Magister 28.06.2010 15:22

Re: InnoDB!!!
 
кхм.... вообще лучше использовать для таблиц ENGINE=MyISAM. А про InnoDB забыть....:cool:

ginger 28.06.2010 15:37

Re: InnoDB!!!
 
Цитата:

Сообщение от OkoPwnz (Сообщение 76969)
Помогите разобраться с InnnoDB
Как включить опцию InnoDB что б мускул поддерживал таблици с этим расширением

поставить из пакетов Mysql
Цитата:

Сообщение от Magister (Сообщение 76977)
кхм.... вообще лучше использовать для таблиц ENGINE=MyISAM. А про InnoDB забыть....:cool:

а такие советы лучше придержать при себе

Blakkky 28.06.2010 17:34

Re: InnoDB!!!
 
Во-первых: убрать в конфиге skip-innodb, как говорил тов. PROGRAMMATOR.
Во-вторых: пройтись по всем файлам базы данных сервера и поменять в CREATE TABLE ... (...) Engine=MyISAM; на CREATE TABLE ... (...) Engine=InnoDB; или, если сервер уже установлен, сделать для всех таблиц ALTER TABLE <table_name> ENGINE=InnoDB;

Касательно использования InnoDB вообще. Основное отличие между MyISAM-движка базы и InnoDB в появлении в последнем поддержки транзакций и построчной блокировки таблиц (в MyISAM блокировка при селектах/инсертах/апдейтах потабличная, т.е. с одной таблицей по-факту только один запрос работать может). Транзакции понизят производительность базы (из-за больших накладных расходов на каждый запрос), а вот построчная блокировка значительно ускорит работу с базой в сильно нагруженном приложении (например, в сервере ла2). Включать его однозначно нужно, только хорошо бы сделать это с умом, т.е. на таблицы, где данные более-менее статические (итемы, арморы, нпс, спавн и т.д., те, что читаются один раз при старте) лучше его не включать, а на динамические таблицы, в которые идут постоянно запросы на добавление/обновление/чтение данных (игроки, инвентарь, макросы, переменные игрока и т.д.) хорошо бы InnoDB включить.

m095 28.06.2010 18:48

Re: InnoDB!!!
 
Зачем серверу Lineage 2 InnoDB? Лучше MyISAM для java сервера не придумаешь. Единственный недостаток MyISAM в данном случае, это блокировка всей таблицы во время записи. Но правильные индексы спасают.

Blakkky 28.06.2010 19:28

Re: InnoDB!!!
 
Цитата:

Сообщение от m095 (Сообщение 77021)
Зачем серверу Lineage 2 InnoDB? Лучше MyISAM для java сервера не придумаешь. Единственный недостаток MyISAM в данном случае, это блокировка всей таблицы во время записи. Но правильные индексы спасают.

Ну вообщем-то да, для 300 онлайна и запросов вида SELECT * FROM table_name1 WHERE id in (SELECT * FROM table_name2 WHERE name like 'трали-вали') WHERE name like 'тили-тили';, где обе таблицы содержат по 100к записей можно и вообще на CSV-файлах делать :) Плюс-минус 1сек на запрос не критична. :)

А "правильные индексы", кстати, только усложняют вставку данных. Не даром рекомендуется делать
Код:

query("ALTER TABLE `some_table` DISABLE KEYS");
for (int i = 0; i < 100000; i++) {
        query("INSERT INTO `some_table` (`field`) VALUES (" + i +")");
}
query("ALTER TABLE `some_table` ENABLE KEYS");

для вставки многих записей подряд.

OkoPwnz 28.06.2010 22:06

Re: InnoDB!!!
 
всем спасибо)

Place 26.11.2010 17:44

Re: InnoDB!!!
 
Цитата:

Сообщение от Blakkky (Сообщение 77007)
Касательно использования InnoDB вообще. Основное отличие между InnoDB-движка базы и InnoDB в появлении в последнем поддержки транзакций и построчной блокировки таблиц (в MyISAM блокировка при селектах/инсертах/апдейтах потабличная, т.е. с одной таблицей по-факту только один запрос работать может). Транзакции понизят производительность базы (из-за больших накладных расходов на каждый запрос), а вот построчная блокировка значительно ускорит работу с базой в сильно нагруженном приложении (например, в сервере ла2). Включать его однозначно нужно, только хорошо бы сделать это с умом, т.е. на таблицы, где данные более-менее статические (итемы, арморы, нпс, спавн и т.д., те, что читаются один раз при старте) лучше его не включать, а на динамические таблицы, в которые идут постоянно запросы на добавление/обновление/чтение данных (игроки, инвентарь, макросы, переменные игрока и т.д.) хорошо бы InnoDB включить.

Лучший совет )

только на бекапах innodb тормознутая ( в 5 раз медленнее по сравнению с MyISAM ( Хотя может у меня руки кривые


Текущее время: 10:01. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd. Перевод: zCarot