powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Тип таблицы для хранения статистики
4 сообщений из 4, страница 1 из 1
Тип таблицы для хранения статистики
    #38549798
Sergey Solozhentsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть база, в которой нужно хранить много статистики получаемой от пользователя. То есть очень много записей. Пару раз в сутки эта таблица будет обрабатываться для получения агрегированный данных. Периодически также по этой таблице происходят селекты. Весь вопрос, какой движок использовать для хранения таких данных. Сейчас на InnoDB, и селекты работают ну очень медленно. Да и insert'ы тоже в принципе не сильно быстро, но терпимо. А вот с селектами очень плохо.
...
Рейтинг: 0 / 0
Тип таблицы для хранения статистики
    #38549832
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А нужна ли вообще эта таблица? Иногда имеет смысл сразу писать данные в таблицы-агрегаторы.

Если точно нужна, то показывайте структуру таблицы и пример долго работающего запроса.
...
Рейтинг: 0 / 0
Тип таблицы для хранения статистики
    #38550472
Sergey Solozhentsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

Таблица (одна из)

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
CREATE TABLE IF NOT EXISTS `battleSessionInfo` (
  `deviceId` varchar(52) NOT NULL,
  `id` varchar(32) NOT NULL DEFAULT '',
  `monster` varchar(32) DEFAULT NULL,
  `mapPoint` varchar(32) NOT NULL,
  `stars` smallint(4) NOT NULL,
  `result` varchar(16) NOT NULL,
  `resultCoins` smallint(4) NOT NULL,
  `spentCoins` int(11) NOT NULL,
  `spentCrystals` smallint(4) NOT NULL,
  `spentRealCoins` int(11) NOT NULL DEFAULT '0',
  `spentRealCrystals` smallint(4) NOT NULL DEFAULT '0',
  `freeBoostersUed` tinyint(2) NOT NULL,
  `coinsBoosterUsed` tinyint(2) NOT NULL,
  `crystalBooseterUsed` tinyint(2) NOT NULL,
  `skipCount` tinyint(4) NOT NULL,
  `sessionLength` int(11) NOT NULL,
  `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `grade` smallint(4) NOT NULL,
  `enemyGrade` double NOT NULL,
  `speed` int(11) NOT NULL,
  `hits` tinyint(4) NOT NULL DEFAULT '0',
  `turns` smallint(6) NOT NULL DEFAULT '0',
  `helper` smallint(6) NOT NULL DEFAULT '0',
  `healCount` tinyint(2) NOT NULL,
  `healCrystals` smallint(4) NOT NULL,
  `healRealCrystals` smallint(4) NOT NULL,
  `winnerLife` int(11) NOT NULL,
  `misc` int(11) NOT NULL DEFAULT '0',
  `version` varchar(32) DEFAULT NULL,
  `stupid` tinyint(4) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `timestamp` (`timestamp`),
  KEY `deviceId` (`deviceId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPRESSED;



запросы
Код: sql
1.
select sum(spentCoins), mapPoint from battleSessionInfo where timestamp between '2014-02-03' and '2014-02-04'


есть еще такой же но плюс deviceId конкретный указывается. и вместо spentCoins много разных параметров. В общем много аналитики.
Таблицы-агрегаторы создаются по мере необходимости, поэтому и нужна сырая статистика.
...
Рейтинг: 0 / 0
Тип таблицы для хранения статистики
    #38550821
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запрос страный, или вы забыли груп бы указать
Уточните запрос и приведите ЕХПЛАИН (план) запроса.
И его скорость. И какую скорость хотите.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Тип таблицы для хранения статистики
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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