Jump to content
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 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By granderodeo
      Estou tentando pegar dados de duas tabelas logo no inicio da sessão quando o usuário realiza o login, quando utilizo o 
      SELECT * FROM usuarios, orders WHERE email = '$login' and senha= '$senha' Consigo realizar o login tranquilamente, até ai de boa, mais quando modifico o código para
       
      $comando="SELECT * FROM usuarios INNER JOIN orders ON usuarios.id_usuario = orders.id_usuario WHERE email.usuarios='$login' and senha.usuarios='$senha'"; Ele só me deixa fazer login se o usuário já tiver algum orders (pedido). O que estou tentando fazer é assim que o usuário loga, mostre também os pedidos que ele já fez etc, que são dados que estão em outra tabela. Alguém consegue ver meu erro?
    • By fsanchez
      Pessoal, o que estou fazendo de errado?
       
      estou tentando gerar um numero sequencial concatenando string e int, porem quando chega no numero 10 ele fica no 10 e nao soma +1.
       
       
      PED-2019/1
      ....
      PED-2019/10
       
      ....chega aqui ele deveria gerar 
       
      PED-2019/11..12..13
       
      consulta:
       
      select concat('PED-',YEAR(NOW()),'/',cast(SUBSTRING_INDEX(PED_Codigo,'/',-1) as UNSIGNED)+1) as NUM_PED from tbs_pedido order by PED_Codigo desc limit 1  
    • By rogerblower
      Pessoal tenho a seguinte tabela
      id | id_etapa | id_evento | posicao | nome | pontos
      1  |  1             |        2         |   1           | joao      |  10
      2  |  1             |        2         |   2           | pedro    |  9
      3  |  1             |        2         |   3           | maria    |  8
      4  |  1             |       2          |   4           | jose       |  7
      5  |  2             |      2          |   3           | joao       |  8
      6  |  2             |  2              |   1           | pedro    | 10
      7  |  2             |   2             |  2            | maria    |  9
      8  |  2             |  2              |   4          | jose        |  7
       
      O resultado da consulta pretendido é este
      Pos  |  nome |   pontos
      1      |  pedro   | 19
      2      |   joao   | 18
      3      |  maria  |  17
      4      |  jose  |  14
       
      Com esta consulta não ordenando a coluna posicao como esperado, ela repete a posicao e não faz a soma, ex:
       1     joao     10
       1     pedro     10
      $pontuacaoa = $pdo->prepare("SELECT * FROM contador WHERE id_evento = '$id_evento' GROUP BY nome, posicao ORDER BY pontos DESC posicao ASC"); Com esta outra consulta a soma esta correta o agrupamento nome esta correto, não se repetem, mas a coluna posicao fica fora de ordem;
       
      $pontuacaoa = $pdo->prepare("SELECT * FROM contador WHERE id_evento = '$id_evento' GROUP BY nome ORDER BY pontos DESC posicao ASC"); Não estou conseguindo acertar a consulta, alguém me ajuda?
    • By ndias
      Estou com duvida se minha conexão está encerrando.
       
      Utilizo PDO para me conectar:
       
      public static function getDb(){ try { $db = new \PDO( 'mysql:host=localhost;dbname=xyz;charset=utf8', 'xyz', 'xyz1234', array( \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION ) ); return $db; } catch (PDOException $e) { echo "Erro de Conexão " . $e->getMessage() . "\n"; exit; } } public function __construct(\PDO $db) { $this->db = $db; } public function verifica(){ $sql = "SELECT * FROM tabela "; $result = $this->db->query($sql); $rows = $result->fetch(); if($rows){ }else{ } } public function __destruct() { unset($this->db); foreach ($this as $key => $value) { unset($this->$key); } } Estou fazendo certo? Como posso verificar se a conexão está ficando aberta?
    • By agodiniz
      Fala galera, estou com um problema e não sei como resolver. Até encontrei umas respostas, mas utilizando Php e Mysql. Preciso que a resposta seja utilizando as tecnologias javascript (node) e Mysql.
      Gostaria de capturar dados de um formulário utilizando array e salvando o mesmo num banco de dados.
       
      Ex:
      Imagine um 3 inputs do tipo text que recebem um valor que é inserido pelo cliente e que cada input, possa receber valores diferentes (como se cada um fosse uma variável 'titulo', 'conteudo' e 'autor')
      quero que depois que o cliente enviar os dados que por ele foram inputados, esses dados sejam enviados para as variáveis 'titulo', 'conteudo' e 'autor'.
      Logo depois quero declarar um array que receba essas variáveis [titulo, conteudo, autor] e desejo armazenar o array no banco de dados utilizando Mysql
       
      Desde já, agradeço!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.