Postado por Marco (TI e C) em 8 de Março de 2014 às 1:47am
Pedro,
Eu estava analisando o modelo de dados do MK-AUTH. Notei que algumas campos podem ser otimizados para tipos que usem menos bytes.Neste tópico vou demonstrar mudanças no modelo e os resultados.
Para adicionar comentários, você deve ser membro de MK-AUTH.
obrigado marco, eu procurei deixar essa tabela no padrão do pacote freeradius para evitar problemas, mais o tempo de consulta dessa tabela não é um grande problema amigo, o maior problema dela é quando ela fica cheia demais, ao tudo no webadmin fica lento e os clientes param de logar...
Marco de Freitas disse:
Alguns campos VARCHAR() na tabela radacct foram substituídos por campos do tipo ENUM().
Resultado:
select count(1) from radacct; +----------+ | count(1) | +----------+ | 1393539 | +----------+ 1 row in set (0.00 sec)
ls -lth radacct*.ibd -rw-rw---- 1 mysql mysql 768M Mar 8 01:34 radacct_enum.ibd -rw-rw---- 1 mysql mysql 824M Mar 3 07:04 radacct.ibd
Fiz uma nova conversão dessa tabela com algumas mudanças. Consegui 14% de redução convertendo os IPs para um número inteiro (4 bytes) usando a função INET_ATON(). O problema é que isso a incompatibiliza com o Freeradius.
Mesmo que o MariaDB tivesse um tipo de dado que fosse eficiente no armazenamento de IP e MAC Address a questão é que a tabela radacct é muito redundante. Uma opção é convertê-la numa VIEW e normalizar. Para o Freeradius não faz a menor diferença se a tabela é real ou não.
Pedro Filho disse:
obrigado marco, eu procurei deixar essa tabela no padrão do pacote freeradius para evitar problemas, mais o tempo de consulta dessa tabela não é um grande problema amigo, o maior problema dela é quando ela fica cheia demais, ao tudo no webadmin fica lento e os clientes param de logar...
ok amigo, me envia depois esse dica tb por mensagem, não coloca aqui no fórum que já tem varios usuários brincando com o BD e causando problemas...
Marco de Freitas disse:
Fiz uma nova conversão dessa tabela com algumas mudanças. Consegui 14% de redução convertendo os IPs para um número inteiro (4 bytes) usando a função INET_ATON(). O problema é que isso a incompatibiliza com o Freeradius.
Mesmo que o MariaDB tivesse um tipo de dado que fosse eficiente no armazenamento de IP e MAC Address a questão é que a tabela radacct é muito redundante. Uma opção é convertê-la numa VIEW e normalizar. Para o Freeradius não faz a menor diferença se a tabela é real ou não.
Pedro Filho disse:
obrigado marco, eu procurei deixar essa tabela no padrão do pacote freeradius para evitar problemas, mais o tempo de consulta dessa tabela não é um grande problema amigo, o maior problema dela é quando ela fica cheia demais, ao tudo no webadmin fica lento e os clientes param de logar...
Respostas
Alguns campos VARCHAR() na tabela radacct foram substituídos por campos do tipo ENUM().
Resultado:
select count(1) from radacct;
+----------+
| count(1) |
+----------+
| 1393539 |
+----------+
1 row in set (0.00 sec)
ls -lth radacct*.ibd
-rw-rw---- 1 mysql mysql 768M Mar 8 01:34 radacct_enum.ibd
-rw-rw---- 1 mysql mysql 824M Mar 3 07:04 radacct.ibd
7% de redução.
radacct.sql
radacct_enum.sql
obrigado marco, eu procurei deixar essa tabela no padrão do pacote freeradius para evitar problemas, mais o tempo de consulta dessa tabela não é um grande problema amigo, o maior problema dela é quando ela fica cheia demais, ao tudo no webadmin fica lento e os clientes param de logar...
Marco de Freitas disse:
Fiz uma nova conversão dessa tabela com algumas mudanças. Consegui 14% de redução convertendo os IPs para um número inteiro (4 bytes) usando a função INET_ATON(). O problema é que isso a incompatibiliza com o Freeradius.
Mesmo que o MariaDB tivesse um tipo de dado que fosse eficiente no armazenamento de IP e MAC Address a questão é que a tabela
radacct
é muito redundante. Uma opção é convertê-la numa VIEW e normalizar. Para o Freeradius não faz a menor diferença se a tabela é real ou não.Pedro Filho disse:
ok amigo, me envia depois esse dica tb por mensagem, não coloca aqui no fórum que já tem varios usuários brincando com o BD e causando problemas...
Marco de Freitas disse: