Blog M2 IT SOLUTIONS

Problemy z najnowsza wersja MariaDb i bardzo dluga indexacja

W przypadku najnowszej wersji MAriaDB pojawiły się problemy z trwającą ekstremalnie długo indeksacją listy produktów.

Po analizie udało się odkryćm, że problemem jest rzutowanie typów przez bazę danych. Poniżex fix króty można zastosować w pliku Magento/Framework/DB/Adapter/Pdo/Mysql.php


public function quoteInto($text, $value, $type = null, $count = null)
	if (is_array($value)) {   
		foreach($value as &$val) { 
			$val = $this->castNumeric($val);
		}
	} else {
		$value = $this->castNumeric($value);
	}
	if (is_array($value) && empty($value)) {             
		$value = new \Zend_Db_Expr('NULL');         
	}          
	if ($value instanceof \DateTimeInterface) {             
		$value = $value->format('Y-m-d H:i:s');         
	}          
	return parent::quoteInto($text, $value, $type, $count);     
}         
private function castNumeric($val) {         
	if (is_numeric($val)) {             
		return $val + 0;         
	}         
	return $val;     
}

Rozwiązanie na podstawie https://github.com/magento/magento2/pull/25212/commits/b4a6b68e2d4ad403b1e85e8abdf829fb14dd2138

Powrót