Всем привет!
Намедни один мой знакомый спросил меня, насколько адекватны оценки производительности плагина WP Hosting Benchmark Tool.
Полез я в файлы плагина и, среди прочего, обратил внимание на такой код
function test_db_joins() {
global $wpdb;
$this->init_dbtable_names();
for ($i=0;$i<50;$i++) {
#$wpdb->get_results("select ".$this->dbtables["obj"].".o_id, ".$this->dbtables["prop"].".p_name, ".$this->dbtables["log"].".txt from ".$this->dbtables["obj"]." left join ".$this->dbtables["prop"]." on ".$this->dbtables["obj"].".o_id=".$this->dbtables["prop"].".o_id left join ".$this->dbtables["log"]." on ".$this->dbtables["prop"].".p_id=".$this->dbtables["log"].".p_id where ".$this->dbtables["obj"].".o_id=".rand(1,999)." and ".$this->dbtables["prop"].".p_name='name'");
$sql = "select ".$this->dbtables["obj"].".o_id, ".$this->dbtables["prop"].".p_name, ".$this->dbtables["log"].".txt from ".$this->dbtables["obj"]." left join ".$this->dbtables["prop"]." on ".$this->dbtables["obj"].".o_id=".$this->dbtables["prop"].".o_id left join ".$this->dbtables["log"]." on ".$this->dbtables["prop"].".p_id=".$this->dbtables["log"].".p_id where ".$this->dbtables["prop"].".p_name like '%".$this->random_string(2)."%' order by RAND() limit 1;";
$wpdb->get_results($sql);
}
for ($i=0;$i<50;$i++) {
$sql = "select ".$this->dbtables["prop"].".p_id, ".$this->dbtables["prop"].".p_name, ".$this->dbtables["log"].".txt from ".$this->dbtables["log"]." left join ".$this->dbtables["prop"]." on ".$this->dbtables["log"].".p_id=".$this->dbtables["prop"].".p_id where ".$this->dbtables["prop"].".p_data like '%".$i."%' order by ".$this->dbtables["log"].".txt, ".$this->dbtables["prop"].".p_id desc limit 50;";
$wpdb->get_results($sql);
}
}
Поскольку от строк выше в глазах нехорошо и читабельность не очень, решил обратиться к практикам: нормален ли этот код для оценки производительности операций объединения?