Brian | Дата: Среда, 22.05.2013, 03:28 | Сообщение # 1 |
Группа:
Media-ProGroup
Сообщений: 1337
Награды: 17
Город: Odessa
Репутация: 871
Замечания: 0%
Статус: ![](/f_icons/off.gif)
| В общем так как мускуль работает быстрее и с ним возится проще, чем с mxINI, то запощу доказательство своих слов. Переход на мускул обещает увеличить скорость загрузки объектов, домов, транспорта и многое другое на SAMP сервере.
Показываю как считываются данные на mxINI:
[pwn]new string[64]; new playername[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername, sizeof(playername)); format(string, sizeof(string), "Players/%s.ini", playername); new File = ini_openFile(string); if(!File) { ini_getString(File,"Key",PlayerInfo[playerid][pPass]); ini_getInteger(File,"Level",PlayerInfo[playerid][pLevel]); ini_getFloat(File,"pIp",PlayerInfo[playerid][pIp]); } [/pwn]
А вот как на MySql:
[pwn]new query[144]; format(query,sizeof(query), "SELECT * FROM "TABLE_ACCOUNT" WHERE name = '%s' LIMIT 1",sendername(playerid)); mysql_function_query(dbHandle, query, true, "LoadAcc", "i", playerid);// Тут мы вызываем паблик лоадэсс с параметром плейерАйди, включаем кэширование[/pwn]
Рассмотрим dbHandle - это подключение к MySql, его возвращает mysql_connect
[pwn]new dbHandle; // Вставляем в начало мода // Вставляем в OnGameModeInit dbHandle = mysql_connect(Хост, Логин, База, Пароль); // Тут мы подключаемся к MySql [/pwn]
query - с помощью этой переменной форматируется запрос true/false - кэширование включаем и выключаем. true - Включить false - Выключить. Используется только для функции SELECT LoadAcc - вызывается public загрузки аккаунта при входе на SAMP сервер i - Integer(Числовое значение) s - String(Строка) f - Float(Значение с точкой)
После этого создаём сам public загрузки:
[pwn]forward LoadAcc(playerid); public LoadAcc(playerid) { new rows, fields; // На время создаются переменные cache_get_data(rows, fields); // Узнаём количество строк и столбцов с помощью кэширования if(rows) // При наличии аккаунта идём далее... { new temp[64]; cache_get_field_content(0, "Key", PlayerInfo[playerid][pPass]); // Строки записываются напрямую cache_get_field_content(0, "Level", temp); PlayerInfo[playerid][pLevel] = strval(temp); // Делается только в случае, если у вас числовое значение %i, Integer cache_get_field_content(0, "pIp", temp); PlayerInfo[playerid][pIp] = floatstrl(temp); // Делается только в случае, если у вас число с точкой, то-есть %f, Float } return true; // Очистка кэша } [/pwn]
В принципе сложность одинаковая, но вот у мускула плюс в быстроте. Так что есть смысл
Вольнодумцы не зависят от чужого мнения, они имеют своё. Они стойкие люди, не слабые и не подвержены чужому влиянию.
|
|
|
|
Klebit | Дата: Среда, 22.05.2013, 04:40 | Сообщение # 2 |
Уверенный в себе
Группа:
Пользователи
Сообщений: 265
Награды: 0
Город: None
Репутация: -31
Замечания: 60%
Статус: ![](/f_icons/off.gif)
| чем обусловлено использование cache get feild content со strval & floatstr, а не cache_get_field_content_int и cache_get_field_content_float?
|
|
|
|
Borog | Дата: Среда, 22.05.2013, 11:04 | Сообщение # 3 |
Долгожитель
Группа:
I'm V.I.P.
Сообщений: 1362
Награды: 43
Город: Москва
Репутация: 1249
Замечания: 20%
Статус: ![](/f_icons/off.gif)
| Цитата (Brian) floatstrl(temp) floatstr(temp)
Silver Break http://s-break.ru/ http://vk.com/sbreak
|
|
|
|
[RD]Chez | Дата: Среда, 22.05.2013, 11:32 | Сообщение # 4 |
Мастер джэдай
Группа:
Продвинутые
Сообщений: 3687
Награды: 206
Город: St. P
Репутация: 0
Замечания: 20%
Статус: ![](/f_icons/off.gif)
| забавно. что за дешевый хостинг, на котором проходили тесты? мускул сам по себе работает на файлах+ram, также как и mxini сравнивать их странно и глупо. mxini - обертка над файловыми операциями с загрузкой файлов в оперативку. выполняет загрузку и сохранение, а также строковые операции и fseek взятые в api amx машины. узкое место - скорость ram/кол-во свободных квантов времени многопроцессорного сервера, а если учесть, что amx жрет только одно ядро одного процессора вообще должно дать нормальному программисту понять, что все узкие операции нужно проводить в asm/c++ скомпилированном плагине с учетом многопоточности. mysql - изначально умеет работать с несколькими ядрами и оптимизирован в конвеерном распределении в 70% случаев использования в sa-mp.
все равно, что сравнивать рыбу и мясоДобавлено (22.05.2013, 11:32) --------------------------------------------- кстати на системе с btrfs мускул просрал бы в этом тесте
1 час моей работы стоит минимум 800 рублей для срочных работ. Знаю CodeIgniter, Kohana, втч. кастом(php), Вникаю в Yii. jQuery на должном уровне, немного разбираюсь в RightJS. Алсо, 6 лет павно, 2 года в шарпе, понимаю си и плюсы. Немного ассемблер. Ох**тельный верстальщик какб.
Если ваш заказ потребует неделю работы и вы собираетесь заплатить 100 рублей - лес там ->> ^^^^^
chezrd@gmail.com lance@chez-lab.ru
|
|
|
|