Небольшой тест таблиц discount_transactions_all
Небольшой тест таблиц discount_transactions_all
Сделайте пожалуйста запрос вида:
SELECT COUNT( * ) FROM `discount_transactions_all` WHERE `discount` =0
У меня результат 16070450
SELECT COUNT( * ) FROM `discount_transactions_all` WHERE `discount` <>0
результат 1326625
Т.е 16 миллионов записей с 0 списанием, в то время как общее кол-во записей 25 миллонов.
сижу пока на 5.2.1-004, но вот вопрос это нормальное поведение биллинга, или у меня все же какие-то косяки в настройках?
Результаты для меня несколько шокирующие...
SELECT COUNT( * ) FROM `discount_transactions_all` WHERE `discount` =0
У меня результат 16070450
SELECT COUNT( * ) FROM `discount_transactions_all` WHERE `discount` <>0
результат 1326625
Т.е 16 миллионов записей с 0 списанием, в то время как общее кол-во записей 25 миллонов.
сижу пока на 5.2.1-004, но вот вопрос это нормальное поведение биллинга, или у меня все же какие-то косяки в настройках?
Результаты для меня несколько шокирующие...
Код: Выделить всё
mysql> SELECT COUNT( * ) FROM `discount_transactions_all` WHERE `discount` =0;
+------------+
| COUNT( * ) |
+------------+
| 10057335 |
+------------+
1 row in set (1 min 12.82 sec)
mysql> SELECT COUNT( * ) FROM `discount_transactions_all` WHERE `discount` <>0;
+------------+
| COUNT( * ) |
+------------+
| 2728682 |
+------------+
1 row in set (1 min 6.44 sec)
Но у меня долгое время считался локальный трафик с нулевой стоимостью.
Отсюда и больше количество списаний.
Это можно подтвердить такими запросами:
Код: Выделить всё
mysql> SELECT COUNT( * ) FROM `discount_transactions_iptraffic_all` WHERE `discount` =0;
+------------+
| COUNT( * ) |
+------------+
| 9934364 |
+------------+
1 row in set (1 min 3.12 sec)
mysql> SELECT COUNT( * ) FROM `discount_transactions_iptraffic_all` WHERE `discount` <>0;
+------------+
| COUNT( * ) |
+------------+
| 2472336 |
+------------+
1 row in set (57.13 sec)
Огласите ваши классы трафика.
Код: Выделить всё
mysql> SELECT COUNT(*) FROM discount_transactions_all WHERE discount=0;
+----------+
| COUNT(*) |
+----------+
| 15454936 |
+----------+
1 row in set (4 min 31.71 sec)
mysql> SELECT COUNT(*) FROM discount_transactions_all WHERE discount!=0;
+----------+
| COUNT(*) |
+----------+
| 21620453 |
+----------+
1 row in set (4 min 32.19 sec)
mysql>
У меня локальный не попадает вообще, т.е. он просто не заруливается на интерфейс с которого снимается netflow.
Трафик с 0 стоимостью будет не только, потому что разуливается локальный трафик, но и скажем который якобы не классифицирован.
Опять же трафик по безлимитным тарифам тоже будет 0 стоимости.
Но почему он попадает в discount_transactions_all не совсем понятно.
Интересно можно ли оттуда удалить эти записи, и насколько оно будет безболезненым для биллинга.
Трафик с 0 стоимостью будет не только, потому что разуливается локальный трафик, но и скажем который якобы не классифицирован.
Опять же трафик по безлимитным тарифам тоже будет 0 стоимости.
Но почему он попадает в discount_transactions_all не совсем понятно.
Интересно можно ли оттуда удалить эти записи, и насколько оно будет безболезненым для биллинга.
Код: Выделить всё
mysql> SELECT COUNT( * ) FROM `discount_transactions_iptraffic_all` WHERE `discount` =0;
+------------+
| COUNT( * ) |
+------------+
| 16116307 |
+------------+
1 row in set (1 min 10.82 sec)
mysql> SELECT COUNT( * ) FROM `discount_transactions_iptraffic_all` WHERE `discount` <>0;
+------------+
| COUNT( * ) |
+------------+
| 1326265 |
+------------+
Код: Выделить всё
mysql> SELECT COUNT( * ) FROM `discount_transactions_iptraffic_all` WHERE `discount` =0;
+------------+
| COUNT( * ) |
+------------+
| 9299623 |
+------------+
1 row in set (6.68 sec)
mysql> SELECT COUNT( * ) FROM `discount_transactions_all` WHERE `discount` <>0;
+------------+
| COUNT( * ) |
+------------+
| 7553421 |
+------------+
1 row in set (22.99 sec)
Интуиция подсказывает, что можно, причем это ни на что не отразится.AndrewE писал(а):Интересно можно ли оттуда удалить эти записи, и насколько оно будет безболезненым для биллинга.
Только надо бахать в обоих таблицах эти строчки, т.к. id строки в одной таблице совпадает с id строки в другой.
Но проверять интуицию лень)
если их удалить то в отчетах по трафику клиент не будет видеть предоплаченного трафика, или трафика с 0 стоимостьюXoRe писал(а):Интуиция подсказывает, что можно, причем это ни на что не отразится.AndrewE писал(а):Интересно можно ли оттуда удалить эти записи, и насколько оно будет безболезненым для биллинга.
Только надо бахать в обоих таблицах эти строчки, т.к. id строки в одной таблице совпадает с id строки в другой.
Но проверять интуицию лень)
Связаны.Но не настолько, чтобы удаление из одной таблицы приводило к невозможности работы с другой. Ключевое слово - iptraffic. Удалять стоит - понимая, что это может вызвать вопросы у пользователей. Вполне закономерные вопросы. Например - "Почему я не вижу - сколько я трафика я потребил в январе 2007 года".