Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

CrashRM

Wordpress com uma grande base de Dados

Recommended Posts

Olá, preciso de ajuda e acredito que esse fórum possa ser uma luz.

Estou com um projeto de um site que irá exibir informações de empresas, pois bem, ele foi feito em wordpress e utilizo o plugin wp all import para poder subir esses dados para o site via arquivo csv.
Estava tudo funcionando bem, mas, conforme a base de dados foi subindo o site foi ficando lento e agora por várias vezes ele apresenta erro 500 (Internal Server Error Sorry, something went wrong) ao realizar buscas no site.

Ao subir o arquivo csv, para cada linha do arquivo o plugin cria uma postagem nova no wordpress com as informações das colunas, ao total eu teria que subir 20 milhões de linhas e cada linha contem 27 colunas que são adicionadas como informações no post.


O problema do erro 500 começou acontecer quando cheguei a um pouco mais de 1 milhão de empresas cadastradas.

 

Não sou profissional no assunto, tudo que fiz foi através de pesquisas e estudos em sites e fóruns, então pode ser que tenha configurado algo errado ou o servidor é que não é o ideal... eis que minhas dúvidas são:

- Preciso de um servidor melhor ou esse comporta?
- A configuração do meu mysql (my.cnf) ou php.ini estão incorretas?
- Devo colocar o banco de dados em um servidor específico? (tentei fazer na amazon, mas me perdi no meio do processo)
- O que devo fazer?

Segue as informações:
Servidor: https://www.ovh.pt/vps/vps-cloud-ram.xml
VPS Cloud RAM 2

2 vCore(s); 2 GHz; 12 GB RAM; 50 GB SSD
- Linux Ubuntu 16, php 7.3
- Vestacp

My.cnf

[client]
port=3306
socket=/var/run/mysqld/mysqld.sock

[mysqld_safe]
socket=/var/run/mysqld/mysqld.sock

[mysqld]
user=mysql
pid-file=/var/run/mysqld/mysqld.pid
socket=/var/run/mysqld/mysqld.sock
port=3306
basedir=/usr
datadir=/var/lib/mysql
tmpdir=/tmp
lc-messages-dir=/usr/share/mysql
log_error=/var/log/mysql/error.log

symbolic-links=0

skip-external-locking
key_buffer_size = 4000M
max_allowed_packet = 64M
table_open_cache = 4096
sort_buffer_size = 64M
read_buffer_size = 64M
read_rnd_buffer_size = 128M
myisam_sort_buffer_size = 128M
thread_cache_size = 64
query_cache_size= 624M

#innodb_use_native_aio = 0
innodb_file_per_table
innodb_buffer_pool_size = 8000M

max_connections=120
max_user_connections=30
wait_timeout=28800
interactive_timeout=58800
long_query_time=5

!includedir /etc/mysql/conf.d/

php.ini

[PHP]

engine = On

short_open_tag = On

precision = 14

output_buffering = 4096

zlib.output_compression = Off

implicit_flush = Off

unserialize_callback_func =

serialize_precision = 17

disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,

disable_classes =

zend.enable_gc = On

expose_php = Off

max_execution_time = 300
max_input_time = -1
memory_limit = 2000M

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
display_errors = Off
display_startup_errors = Off
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off

report_memleaks = On
track_errors = Off

html_errors = On

variables_order = "GPCS"

request_order = "GP"
register_argc_argv = Off
auto_globals_jit = On

post_max_size = 1000M

auto_prepend_file =

auto_append_file =

file_uploads = On
upload_max_filesize = 50M
max_file_uploads = 20

allow_url_fopen = On
allow_url_include = Off
default_socket_timeout = 60

pdo_mysql.cache_size = 2000
pdo_mysql.default_socket=

sql.safe_mode = Off

odbc.allow_persistent = On
odbc.check_persistent = On
odbc.max_persistent = -1
odbc.max_links = -1
odbc.defaultlrl = 4096
odbc.defaultbinmode = 1

ibase.allow_persistent = 1
ibase.max_persistent = -1
ibase.max_links = -1

ibase.timestampformat = "%Y-%m-%d %H:%M:%S"
ibase.dateformat = "%Y-%m-%d"
ibase.timeformat = "%H:%M:%S"

[MySQLi]
mysqli.max_persistent = -1
mysqli.allow_persistent = On
mysqli.max_links = -1
mysqli.cache_size = 2000
mysqli.default_port = 3306

mysqli.reconnect = Off

mysqlnd.collect_statistics = On
mysqlnd.collect_memory_statistics = Off

 

Espero que alguém possa me dar uma luz para resolver esse problema.

Desde já obrigado 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Gdonato
      Ola pessoal, baixei um tema wordpress Profolio e alterei ja grande parte do tema, porem estou com 2 problemas, um que os icones das redes sociais nao aparecem, altero, publico e nao aparece e  nao estou achando onde alterar a parte OUR PORTFOLIO onde esta em ingles, alguem pode me ajudar onde acho para editar e alterar?
    • Por Gdonato
      Ola pessoal, baixei um tema wordpress Profolio e alterei ja grande parte do tema, porem estou com 2 problemas, um que os icones das redes sociais nao aparecem, altero, publico e nao aparece e  nao estou achando onde alterar a parte OUR PORTFOLIO onde esta em ingles, alguem pode me ajudar onde acho para editar e alterar?
    • Por Gdonato
      Ola pessoal, baixei um tema wordpress Profolio e alterei ja grande parte do tema, porem estou com 2 problemas, um que os icones das redes socias nao aparecem, altero, publico e nao aparece e  nao estou achando onde alterar a parte OUR PORTFOLIO onde esta em ingles, alguem pode me ajudar onde acho para editar e alterar?
    • Por ILR master
      Tudo bem pessoal?
       
      No código abaixo, estou fazendo uma consulta nas tabelas, banners e banners_referencia
      Meu objetivo é trazer resultados com valores iguais ao nome da cidade declarada na $cidade ou resultados com a referencia Total.
      O problema é que está trazendo todos os resultados. Tenho 10 linhas, 1 com o nome da cidade e duas com o valor Total, então o resultado teria que ser de apenas 3 linhas, mas mostra tudo.
       
      $banner = "SELECT A.*, B.* FROM banners A, banners_referencia B WHERE B.cod_referencia = A.cod_referencia AND A.cidade = '$cidade' OR B.referencia = 'Total' ORDER BY RAND()";
      $banner = mysqli_query($conexao, $banner) or die ("Banner não encontrado");
      while($busca= mysqli_fetch_array($banner)){
          print $busca['cidade'].'<br>';
      };
       
      Alguém consegue me ajudar?
    • Por luiz monteiro
      Olá, tudo bem?
       
      Estou melhorando meu conhecimento em php e mysql e, me deparei com o seguinte. A tabela da base de dados tem um campo do tipo varchar(8) o qual armazena números. Eu não posso alterar o tipo desse campo. O que preciso é fazer um select para retornar o números que contenham zeros a direita ou a esquerda.
      O que tentei até agora
       
      Ex1
      $busca = $conexao->prepare("select campo form tabela where (campo = :campo) ");
      $busca->bindParam('campo', $_REQUEST['campo_form']);
       
      Se a direita da string $_REQUEST['campo_form'] termina ou inicia com zero ou zeros, a busca retorna vazio.
      Inseri dados numéricos, da seguinte maneira para testar: 01234567;  12345670: 12345678: 12340000... entre outros nessa coluna. Todos os valores que não terminam ou não iniciam com zero ou zeros, o select funciona.
       
       
      Ex2
      $busca = $conexao->prepare("select campo form tabela where (campo = 0340000) ");
      Esse número está cadastrado, mas não retorna.
       
      Ex3
      $busca = $conexao->prepare("select campo form tabela where (campo = '02340001' ) ");
      Esse número está cadastrado, mas não retorna.
       
       
      Ex4
      $busca = $conexao->prepare("select campo form tabela where (campo like 2340000) ");
      Esse número está cadastrado, mas não retorna.
       
      Ex5
      $busca = $conexao->prepare("select campo form tabela where (campo like '12340000') ");
      Esse número está cadastrado, mas não retorna.
       
      Ex6
      $busca = $conexao->prepare("select campo form tabela where (campo like '"12340000"' ) ");
      Esse número está cadastrado, mas não retorna.
       
       
      Ex7
      $busca = $conexao->prepare("select campo form tabela where (campo like :campo) ");
      $busca->bindParam('campo', $_REQUEST['campo_form'])
      Não retorna dados.
       
      O  $_REQUEST['campo_form'] é envio via AJAX de um formulário. 
      Usei o gettype para verificar o post, e ele retorna string.
      Fiz uma busca com número 12345678 para verificar o que o select retorna, e também retrona como string.
       
      Esse tipo de varchar foi usado porque os números que serão gravados nesse campo,  terão zeros a direita ou na esquerda. Os tipos number do mysql não gravam zeros, então estou usando esse. O problema é a busca.
      Agradeço desde já.
       
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.