Месяц назад ядро перестало записывать данные в таблицу discount_transaction_all ругалось что такой индекс существует уже,
посмотрев таблицу обнаружил что индекс достиг своего предела два с чем то миллиарда записей...
в таблице поправил тип поля на беззнаковое, соответственно добавился еще один регистр, все стало писать сразу, казалось что проблемма решена, но...
При выполнении основного отчета за этот месяц и последующий выяснилось что у всех практически людей исходящий остаток равен одинаковой сумме...
в текущем месяце и входящий тоже.....
При выполнении основного отчета непосредственно в базе SQL запросом все выдает ОК, все суммы на местах.
Отсюда был сделан вывод что ядро UTM не понимает таких больших значений и не может посчитать остатки нормально.
Отсюда вопрос:
Кто как решал данную проблемму? или ни у кого нет такого количества списаний?
И второе в этой таблице находится очень много записей с нулевыми списаниями, например у человека безлимитка, списана абонентка один раз а потом куча строк с 0 списаниями, и получается очень много не нужных записей в сотни раз больше нужных, и если удалить все записи с 0 списанием на что это может повлиять?
Автоинкремент discount_transaction_all
mysql> show table status like 'discount_transactions_all';
+---------------------------+--------+---------+------------+-----------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+---------------------+-------------------+----------+----------------+---------+
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |
+---------------------------+--------+---------+------------+-----------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+---------------------+-------------------+----------+----------------+---------+
| discount_transactions_all | MyISAM | 10 | Dynamic | 168066921 | 59 | 9992778204 | 281474976710655 | 16151974912 | 0 | 2271959992 | 2011-05-17 13:30:05 | 2011-06-27 17:05:13 | 2011-06-22 02:44:24 | latin1_swedish_ci | NULL | | |
+---------------------------+--------+---------+------------+-----------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+---------------------+-------------------+----------+----------------+---------+
1 row in set (0.00 sec)
To Blackmore...
Я не спрашивал про все записи а про те что с нулевыми списаниями... не пойму зачем их хранить
+---------------------------+--------+---------+------------+-----------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+---------------------+-------------------+----------+----------------+---------+
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |
+---------------------------+--------+---------+------------+-----------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+---------------------+-------------------+----------+----------------+---------+
| discount_transactions_all | MyISAM | 10 | Dynamic | 168066921 | 59 | 9992778204 | 281474976710655 | 16151974912 | 0 | 2271959992 | 2011-05-17 13:30:05 | 2011-06-27 17:05:13 | 2011-06-22 02:44:24 | latin1_swedish_ci | NULL | | |
+---------------------------+--------+---------+------------+-----------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+---------------------+-------------------+----------+----------------+---------+
1 row in set (0.00 sec)
To Blackmore...
Я не спрашивал про все записи а про те что с нулевыми списаниями... не пойму зачем их хранить
Если не ошибаюсь, запись с нулевыми списаниями в discount_transactions_all , добавляется когда в таблицу discount_iptraffic_all заносится запись о трафике.
По идее если не интересны почасовые отчеты по клиентам то спустя месяц (ну или иной период) можно такие записи "компактифицировать", оставив только одну запись о трафике за день в discount_iptraffic_all, и удалив "нулевые" записи в discount_transactions_all.
Где то на форуме говорили про perl скрипт который подобное делал и был в ранних поставках UTM.
Если кто найдет и выложит - буду благодарен, у самого руки никак не дойдут написать.
По идее если не интересны почасовые отчеты по клиентам то спустя месяц (ну или иной период) можно такие записи "компактифицировать", оставив только одну запись о трафике за день в discount_iptraffic_all, и удалив "нулевые" записи в discount_transactions_all.
Где то на форуме говорили про perl скрипт который подобное делал и был в ранних поставках UTM.
Если кто найдет и выложит - буду благодарен, у самого руки никак не дойдут написать.