Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите создать индексы в базе игры / 8 сообщений из 8, страница 1 из 1
27.08.2013, 00:18:10
    #38377991
TonyResh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите создать индексы в базе игры
Вот моя игра тык - есть проблемы со скоростью загрузки страниц, вызванная отсутствием индексов в базе.Я никогда с ними не сталкивался,поэтому прошу помочь. Контакты в анкете. Ну либо в теме поясните что и как сделать.
...
Рейтинг: 0 / 0
27.08.2013, 03:48:45
    #38378030
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите создать индексы в базе игры
TonyReshВот моя игра тык - есть проблемы со скоростью загрузки страниц, вызванная отсутствием индексов в базе.Я никогда с ними не сталкивался,поэтому прошу помочь. Контакты в анкете. Ну либо в теме поясните что и как сделать.

сначала определите конкретноы запрос который
медленый -- потом выдайте его сюда.
...
Рейтинг: 0 / 0
27.08.2013, 07:53:26
    #38378072
TonyResh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите создать индексы в базе игры
javajdbcсначала определите конкретноы запрос который
медленый -- потом выдайте его сюда.

Как это можно сделать?
...
Рейтинг: 0 / 0
27.08.2013, 10:25:34
    #38378200
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите создать индексы в базе игры
...
Рейтинг: 0 / 0
27.08.2013, 22:23:34
    #38379309
TonyResh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите создать индексы в базе игры
javajdbc, вот например кусок mysql-slow.log :

/usr/libexec/mysqld, Version: 5.5.28-log (MySQL Community Server (GPL)). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
# Time: 130827 13:18:38
# User@Host: tonyresh[tonyresh] @ localhost []
# Query_time: 1.677385 Lock_time: 0.000019 Rows_sent: 0 Rows_examined: 0
use vkolhoze;
SET timestamp=1377598718;
INSERT INTO `kolhoz_collective_cash` SET `id_user` = '20175', `id_collective` = '694', `count` = '5000000', `type` = 'money', `time` = '1377598717';
# Time: 130827 13:55:06
# User@Host: tonyresh[tonyresh] @ localhost []
# Query_time: 1.751256 Lock_time: 0.033130 Rows_sent: 0 Rows_examined: 1
SET timestamp=1377600906;
UPDATE `kolhoz_user` SET `date_last` = '1377600903' WHERE `id` = '29935' LIMIT 1;
# User@Host: tonyresh[tonyresh] @ localhost []
# Query_time: 4.093740 Lock_time: 0.000021 Rows_sent: 0 Rows_examined: 0
SET timestamp=1377600906;
INSERT INTO `kolhoz_collective_cash` SET `id_user` = '5555', `id_collective` = '63', `count` = '130200', `type` = 'money', `time` = '1377600901';
/usr/libexec/mysqld, Version: 5.5.28-log (MySQL Community Server (GPL)). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
# Time: 130827 15:04:23
# User@Host: tonyresh[tonyresh] @ localhost []
# Query_time: 1.079396 Lock_time: 0.000020 Rows_sent: 0 Rows_examined: 0
use vkolhoze;
SET timestamp=1377605063;
INSERT INTO `kolhoz_collective_cash` SET `id_user` = '14450', `id_collective` = '388', `count` = '50000', `type` = 'rubies', `time` = '1377605062';
# Time: 130827 18:18:27
# User@Host: tonyresh[tonyresh] @ localhost []
# Query_time: 5.899001 Lock_time: 0.048390 Rows_sent: 0 Rows_examined: 1
SET timestamp=1377616707;
UPDATE `kolhoz_user` SET `date_last` = '1377616700' WHERE `id` = '10033' LIMIT 1;
# User@Host: tonyresh[tonyresh] @ localhost []
# Query_time: 6.786058 Lock_time: 0.000026 Rows_sent: 0 Rows_examined: 0
SET timestamp=1377616707;
INSERT INTO `kolhoz_collective_cash` SET `id_user` = '6215', `id_collective` = '834', `count` = '8051', `type` = 'money', `time` = '1377616700';
# Time: 130827 18:55:39
# User@Host: tonyresh[tonyresh] @ localhost []
# Query_time: 2.858631 Lock_time: 0.000019 Rows_sent: 0 Rows_examined: 0
SET timestamp=1377618939;
INSERT INTO `kolhoz_collective_cash` SET `id_user` = '12173', `id_collective` = '682', `count` = '100000', `type` = 'rubies', `time` = '1377618936';
# Time: 130827 19:37:31
# User@Host: tonyresh[tonyresh] @ localhost []
# Query_time: 1.008244 Lock_time: 0.000021 Rows_sent: 0 Rows_examined: 0
SET timestamp=1377621451;
INSERT INTO `kolhoz_collective_cash` SET `id_user` = '29916', `id_collective` = '694', `count` = '1000', `type` = 'rubies', `time` = '1377621450';
# Time: 130827 20:26:04
# User@Host: tonyresh[tonyresh] @ localhost []
# Query_time: 2.720871 Lock_time: 0.000019 Rows_sent: 0 Rows_examined: 0
SET timestamp=1377624364;
INSERT INTO `kolhoz_collective_cash` SET `id_user` = '12213', `id_collective` = '555', `count` = '330200', `type` = 'money', `time` = '1377624361';



kolhoz_collective_cash - касса колхоза (гильдии)
с остальным вроде бы понятно...
...
Рейтинг: 0 / 0
27.08.2013, 23:04:40
    #38379335
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите создать индексы в базе игры
TonyResh,

теперь пропарсите/прочтите этот лог вот этой утилитой и выдайте
несколько первых запросов (самых медленых, они будут сверху)
Эта утилитка входит с стандартный набор базы.

http://dev.mysql.com/doc/refman/5.1/en/mysqldumpslow.html
...
Рейтинг: 0 / 0
21.09.2013, 02:10:12
    #38403336
TonyResh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите создать индексы в базе игры
javajdbc, в логе много запросов типа INSERT к примеру:

INSERT INTO `kolhoz_collective_cash` SET `id_user` = '20175', `id_collective` = '694', `count` = '5000000', `type` = 'money', `time` = '1377598717';

после которых сразу идёт запрос UPDATE:

UPDATE `kolhoz_user` SET `date_last` = '1379440065' WHERE `id` = '5055' LIMIT 1;

Сейчас я поставили ндексы так:



столбцы в таблице:



но на скорости обработки запросов похоже это никак не сказалось...подскажите как быть?
...
Рейтинг: 0 / 0
21.09.2013, 05:52:38
    #38403357
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите создать индексы в базе игры
TonyResh,

Возможны сотни приоичин для меленой работы веб сайтов, поэтому
будет много гаданий, проверок...

1. укажите где у вас находится сама програма и где база?
(домашний компютер, сервер, совемешенный сервер)

2. результат SHOW CREATE TABLE kolhoz_collective_cash
с консоли базы данных

3. возмите конретно пару следуюших СКл и
выполните их в консоле (в тестовой базе на томже сервере)

INSERT INTO `kolhoz_collective_cash` SET `id_user` = '20175', `id_collective` = '694', `count` = '5000000', `type` = 'money', `time` = '1377598717';

UPDATE `kolhoz_user` SET `date_last` = '1379440065' WHERE `id` = '5055' LIMIT 1;

сделайте несколько прогонов, замерьте время

4. Данные из слов-квери-лога просто нереальные,
3-6 секунд на вставки и на апдейты по ИД -- похоже
что (совемешеных) сервер торможит конкретно,
иили на ручнике и/или колеса спушены.

5. По любому полезно иметь дома копую базы --
в данном случае надо было бы сравнить и будет
понятно ли это проблемы с сервером или что....

6. Наидире способы проследить расход времи (профайлинг)
на создание таблицы. Напромер на странице может быть 3-4
запроса на базу и куча всяких расчетов и отображений картинок.

ВОзможно один СКЛ занимает 3 секунды и остальное занимает 0.2 секунды --
найдите тот конкретно медленый скл. ИЛи СКЛ-ы быстрые 0.1 сек
а 10 секунд занимает загрузка картинки и внешнего ресурса...

7. Составной индекс на 4-6 колонок обычно не нуженм но
конкретно подсказывать -- недостаточно информации..
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите создать индексы в базе игры / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]