Sua experiência com Banco de Dados MariaDB

Sua experiência com Banco de Dados MariaDB

Lindomar, o banco é bastante simples e bem intimista, porem vai depender muito da sua necessidade e também conhecimento no banco escolhido, pois a sintaxe muda, gosto muito do SqlServer e do Mysql, mas vejo muitas empresas utilizando bastante o PostgreSQL

1 Curtida

Eu testei o PostgreSQL, gostei muito …mas a única coisa que não achei solução foi a busca feita pelo scriptcase em campos com acentos e Ç, ele não busca as palavras com acentos

exemplo: se eu buscar jose, ele não mostra josé (com acento)

você ja passou por isso?

LIKE é case sensitive
ILIKE é case insensitive

1 Curtida

oi, mas isso que comenta não acontece com outros SGBD???

Cada gestor de banco de dados tem suas formas, funções e comandos para tratar este assunto que o administrador ou desenvolvedor deve aplicar.

Por exemplo podes criar uma vista com este campo que contem caracteres especiais normalizados e procurar por ela em vez da própria tabela.

Vai, mando uma função utilizada por nós para este tema de procuras que estandardize os carateres.

CREATE OR REPLACE FUNCTION public._normalizar_str(
vtexto text)
RETURNS text
LANGUAGE ‘plpgsql’
COST 1
IMMUTABLE STRICT PARALLEL UNSAFE
AS $BODY$

DECLARE
Cad text;
C character varying;
C1 character varying;
S text;
I Integer;
L Integer;
BEGIN
Cad:=Trim($1);
IF Trim(Cad)=’’ THEN
RETURN ‘’;
END IF;

S:='';
L:=CHAR_LENGTH(Trim(Cad));
I:=0;
LOOP
	I:=I+1;
	IF I>L THEN
		EXIT;
	END IF;
	C:=substring(Cad from I for 1);
	C1:=(SELECT equivalente FROM (
			values 	('á', 'a'),('ã','a'),('â','a'),('ä','a'),('à','a'),('ª','a'),
				('é', 'e'),('ê','e'),('è','e'),('ë','e'),
				('í', 'i'),('ì','i'),('î','i'),('ï','i'),
				('ó', 'o'),('ò','o'),('õ','o'),('ô','o'),('ö','o'),('º','o'),
				('ú', 'u'),('ù','u'),('û','u'),('ü','u'),
				('ç','c'),
				('ñ','n'),
				('Á', 'A'),('Ã','A'),('Â','A'),('Ä','A'),('À','A'),
				('É', 'E'),('Ê','E'),('È','E'),('Ë','E'),
				('Í', 'I'),('Ì','I'),('Î','I'),('Ï','I'),
				('Ó', 'O'),('Ò','O'),('Õ','O'),('Ô','O'),('Ö','O'),
				('Ú', 'U'),('Ù','U'),('Û','U'),('Ü','U'),
				('Ç','C'),
				('Ñ','N')
			) as t(letra, equivalente) WHERE letra=C);		
	IF C1 IS NULL THEN 
		S:=S||C;
	ELSE
		S:=S||C1;
	END IF;
END LOOP;
Cad:=S;
RETURN cad;

END
$BODY$;

1 Curtida

Envio mais funções para este assunto, donde deves chamar a public._to_ascii que é a principal.

CREATE OR REPLACE FUNCTION public._to_ascii(
bytea,
name)
RETURNS text
LANGUAGE ‘internal’
COST 1
VOLATILE STRICT PARALLEL UNSAFE
AS $BODY$
to_ascii_encname
$BODY$;

CREATE OR REPLACE FUNCTION public._simples(
texto character varying)
RETURNS character varying
LANGUAGE ‘plpgsql’
COST 1
IMMUTABLE STRICT PARALLEL UNSAFE
AS $BODY$
DECLARE
Vtext character varying;
BEGIN
BEGIN
Vtext:=(select (_to_ascii(convert_to($1, ‘latin1’), ‘latin1’)));
EXCEPTION WHEN OTHERS THEN
Vtext:=’’;
END;
RETURN Vtext;
END
$BODY$;

Com isto, imagino consigas resolver, são duas fias diferentes mas ao final chagas ao mesmo objetivo.

1 Curtida

Lindomar, não especifiquei antes mas os códigos enviados antes são de PostgreSQL.

Respondendo:

  1. Aceita dados na casa dos terabytes respondendo bem a grande quantidades de insert concorrentes e selects. Mas seu my.cnf tem que esta bem configurado, ter bastante memória para alocar, banco normalizado e um bom DBA. Ou consultas podem passar a demorar horas para ter retorno.

  2. Operações de DDL em bancos com tabelas grandes dará lock na tabela que sofre a DDL. E isto irá comprometer produção com o tempo de espera para que seja finalizado.
    DDL podem ser executados em segundos nos bancos pequenos. Mas rode uma DDL numa tabela de 512GB… Por isto normalize bem para ter que mexer o menos possível em tabelas grandes.

  3. Operações de delete, update, etc em tabelas muitos grandes podem dar lock se a quantidade de registros que forem sofre a DML for na casa de milhares.

  4. Restore lento. Se tiver que retornar 512GB, por exemplo, pode demorar muito.
    Logo, pense em replicação. Se seu banco cair não vai querer esperar dias ou horas para um restore terminar.

  5. Não pense que grátis significa sem investimentos.
    Já vi bancos MariaDB em servidores com memória de 256Gb, 512gb, etc. 48 núcleos de cpu. HD com mais de 4TB e IOPS altíssimo. DBA. Monitoramento, etc. Isto custa dinheiro.

  6. Em alguns casos cluster usando o MariaDB são mais apropriados.
    Mas se um nó cai…

  7. Invista em um bom datacenter.

1 Curtida

Usava MySQL e depois MariaDB a vários anos já, versão 10.x.x.x. é muito bom
com Utf8.
Mas não é só o Banco de dados que faz mágica, você / DBA tem que saber construir
as bases para ter melhores optimizações nas buscas e relacionamento dos dados e no
layout da suas tabelas e isso todo SGDB não faz sozinho.

1 Curtida

@LindomarSilva
Respondendo suas perguntas.

faz quanto tempo ± você usa MariaDB?

Bastante tempo. Desde o Mysql 4 e depois migrando para o MariaDB

ja usou mariadb com banco de dados grandes (acima de 10gb)?

Até 2 terabytes

ja teve algum problema em corrupção de dados no mariadb?

Sim quando usava MyISAM no MySQL 4.
Sim, quando o servidor não tinha nobreak e ficava em localhost. Acabou a luz e tchau, tchau.
Sim, quanto havia bugs no kernel do Linux com XFS num Centos que o cliente teimava em usar. A migração para um kernel mais atual resolveu.
Corrupção todo SGDB pode ocorrer. O que conta são as medidas que você tomou para retornar o mais rápido possível e se sabe salvar uma tabela que corrompeu.

PS: Não gosto do MariaDB / MySQL / Percona. Prefiro Firebird ou PostgreSQL. Porque não gosto? E a mesma coisa de perguntar porque não gosto de futebol.

2 Curtidas

Muito obrigado pela resposta e sua experiência

Eu já uso desde 2008 MySQL, nunca corrompeu, mas a noite deixo uma rotina CRON,
na hospedagem que faz a manutenção das bases pelo MySQL e Backup das mesmas,
tudo automático.

MariaDB que é a mesma coisa desde 2016, idem MySQL todos os procedimentos.

Bases até 3GB, várias bases, vários clientes.

No total já são 14 anos com o Padrão MYSQL.

DB-Engines Ranking - popularity ranking of database management systems

O MySQL nem esta vindo mais como padrão nas hospedagens Linux, ai esta diminuindo seu uso
e aumentando a do MariaDB que é 100% a mesma coisa, só que livre $$

2 Curtidas

Já disse não vou responder cross posting

2 Curtidas