Автоинкремент discount_transaction_all

Технические вопросы по UTM 5.0
Ответить
mva
Сообщения: 175
Зарегистрирован: Чт фев 03, 2005 10:08
Откуда: Ural

Автоинкремент discount_transaction_all

Сообщение mva »

Месяц назад ядро перестало записывать данные в таблицу discount_transaction_all ругалось что такой индекс существует уже,

посмотрев таблицу обнаружил что индекс достиг своего предела два с чем то миллиарда записей...

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

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

в текущем месяце и входящий тоже.....

При выполнении основного отчета непосредственно в базе SQL запросом все выдает ОК, все суммы на местах.

Отсюда был сделан вывод что ядро UTM не понимает таких больших значений и не может посчитать остатки нормально.

Отсюда вопрос:

Кто как решал данную проблемму? или ни у кого нет такого количества списаний?

И второе в этой таблице находится очень много записей с нулевыми списаниями, например у человека безлимитка, списана абонентка один раз а потом куча строк с 0 списаниями, и получается очень много не нужных записей в сотни раз больше нужных, и если удалить все записи с 0 списанием на что это может повлиять?

gtk
Сообщения: 232
Зарегистрирован: Пт янв 21, 2005 18:33

Сообщение gtk »

Сам не делал, но вот на форумах читал что можно сделать truncate table.

Может кто скажет, чем черевато truncate?

Blackmore
Сообщения: 365
Зарегистрирован: Вс фев 06, 2005 09:24
Откуда: подмосковье

Сообщение Blackmore »

truncate table "tablename" - TRUNCATE — в языках, подобных SQL, DML-операция очистки всех строк в таблице. Логически эквивалентна операции DELETE без оператора WHERE, однако часто выполняется быстрее и требует меньших ресурсов системы

а чем чревата очистка всех данных в таблице - решать только вам

gtk
Сообщения: 232
Зарегистрирован: Пт янв 21, 2005 18:33

Сообщение gtk »

show table status like 'discount_transactions_all' \G что выдает?

mva
Сообщения: 175
Зарегистрирован: Чт фев 03, 2005 10:08
Откуда: Ural

Сообщение mva »

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...
Я не спрашивал про все записи а про те что с нулевыми списаниями... не пойму зачем их хранить

lexab
Сообщения: 21
Зарегистрирован: Пт сен 17, 2010 11:52

Сообщение lexab »

Если не ошибаюсь, запись с нулевыми списаниями в discount_transactions_all , добавляется когда в таблицу discount_iptraffic_all заносится запись о трафике.

По идее если не интересны почасовые отчеты по клиентам то спустя месяц (ну или иной период) можно такие записи "компактифицировать", оставив только одну запись о трафике за день в discount_iptraffic_all, и удалив "нулевые" записи в discount_transactions_all.

Где то на форуме говорили про perl скрипт который подобное делал и был в ранних поставках UTM.

Если кто найдет и выложит - буду благодарен, у самого руки никак не дойдут написать.

gtk
Сообщения: 232
Зарегистрирован: Пт янв 21, 2005 18:33

Сообщение gtk »

А сколько база занимает? более 100гб?

mva
Сообщения: 175
Зарегистрирован: Чт фев 03, 2005 10:08
Откуда: Ural

Сообщение mva »

С архивными таблицами за год 450 гиг примерно )

Ответить