#Видео Урок | Как залить сервер Samp Mysql на игровой хостинг Myarena

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

видео #Видео Урок | Как залить сервер Samp Mysql на игровой хостинг Myarena

Как запустить [RP] Samp RP MySQL на хосте ( Linux )

В случае виртуального хостинга вероятна только оптимизация запросов и структуры таблиц.



Нижеописанные в статье команды удобнее всего делать через SSH.

Объединиться с сервером баз данных можно последующей командой: mysql -u имя_пользователя -p -h имя_сервера_БД имя_базы

Запросами, которые в большинстве случаев поддаются оптимизации, являются запросы на выборку SELECT.


Как подключить базу данных MYSQL для сервера SAMP/CRMP!!!

Для того чтоб поглядеть, как будет производиться запрос на выборку, употребляется оператор EXPLAIN. С его помощью вы можете поглядеть, в каком порядке будут связываться таблицы и какие индексы при всем этом будут употребляться.

Пример: mysql> EXPLAIN SELECT id FROM table1 WHERE id='6891';

Индексы используются для резвого поиска строк с указанным значением 1-го столбца. Без индекса чтение таблицы осуществляется по всей таблице, начиная с первой записи, пока не будут найдены соответствующие строки. Чем больше таблица, тем больше затратные расходы. Если же таблица содержит индекс по рассматриваемым столбцам, то MySQL может стремительно найти позицию для поиска в середине файла данных без просмотра всех данных.

Основная ошибка начинающих — это отсутствие индексов на нужных полях либо создание оных на ненужных полях.

Если вы делаете ординарную подборку наподобие: SELECT * FROM table WHERE field1 = 123; то вам необходимо проставить индекс на поле field1.

Если вы используете в выборке условие по двум полям: SELECT * FROM table WHERE field1 = 123 AND field2 = 234; то вам необходимо сделать составной индекс на поля field1, field2: CREATE INDEX ind1 ON table(field1, field2);

Если вы используете соединение 2 или более таблиц: SELECT * FROM a, b WHERE a.b_id = b.id; либо в более общем виде: SELECT * FROM a [LEFT] JOIN b ON b.id = a.b_id [LEFT] JOIN с ON с.id = b.c_id; То вам следует сделать индексы по полям, по которым будут присоединятся таблицы.

В этом случае это поля b.id и c.id. Но это утверждение правильно только в том случае, если подборка будет происходить в том порядке, в котором они перечислены в запросе. Если, к примеру, оптимизатор MySQL будет выбирать записи из таблиц в следующем порядке: c,b,a, то нужно будет проставить индексы по полям: b.c_id и a.b_id. При связывании с помощью LEFT JOIN таблица, которая идет в запросе слева, всегда будет просматриваться первой.

Более тщательно про синтаксис сотворения индексов и про внедрение индексов можно прочесть в справочном руководстве по MySQL.

Время от времени бывает такая ситуация, что вам повсевременно приходится делать подборки из одной и той же части некой очень большой таблицы, к примеру, во многих запросах происходит соединение с частью таблицы: [LEFT] JOIN b ON b.id = a.b_id AND b.field1 = 123 AND b.field2 = 234; В таких случаях может быть разумным вынести эту часть в отдельную временную таблицу: CREATE TEMPORARY TABLE tmp_b TYPE=HEAP SELECT * FROM b WHERE b.field1 = 123 AND b.field2 = 234; и работать уже с ней.

Про временные таблицы также есть статья в справочном руководстве по MySQL.

Для подсчета количества строк используйте функцию COUNT(*), c указанием «звездочки» в качестве аргумента, в этом случае прирост производительности будет выше в разы.

Условия в запросах на обновления оптимизируются так же, как и в случае с выборками.

При нередком изменении некой большой таблицы с большим количеством индексов имеет смысл создавать вставки в другую маленькую вспомогательную таблицу с тем же набором полей (но с отсутствием индексов) и периодически перебрасывать данные из нее в основную таблицу, очищая вспомогательную. При всем этом следует учитывать, что данные будут выводиться с опозданием, что не всегда может быть вероятным.

Чтоб удалить все строчки в таблице, необходимо использовать команду: TRUNCATE TABLE table_name;

В справочном руководстве также есть дополнительная информация по поводу оптимизации.

rss