webForumDet fria alternativet

Långsam SQL Wordpress

2 svar · 818 visningar · startad av Meli

MeliMedlem sedan okt. 20133 inlägg
#1

Hej,

Ny här på forumet och behöver lite hjälp. Har en funktion för att hämta upp en custom meny från en annan sajt. De delar samma MySql men det är två olika databaser.

Det ser ut på följande vis, men det påverkar laddningstiden ganska rejält när jag slår på anropen till funktionen. Misstänker att SQL-frågan är boven och hoppas att någon kan ta sig tid att hjälpa mig här så snart som möjligt :)

function get_main_site_menus($custom_menu) {

		global $wpdb;
		$mydb = new wpdb('root','xxx','xxx','localhost');

		$menu_items = '';

		$custom_menu_items = $mydb->get_results("
			SELECT p2.post_title, p2.guid
	            FROM wp_posts p1
	            LEFT JOIN wp_term_relationships AS TR
	            ON TR.object_id = p1.ID
	            LEFT JOIN wp_postmeta AS PM
	            ON pm.post_id = p1.ID
	            LEFT JOIN wp_posts AS p2
	            ON p2.ID = PM.meta_value
	            WHERE p1.post_type = 'nav_menu_item'
	            AND TR.term_taxonomy_id = ( SELECT wp_terms.term_id FROM wp_terms WHERE wp_terms.slug = '$custom_menu')
	            AND pm.meta_key = '_menu_item_object_id'
	            ORDER BY p1.menu_order ASC
			");
		if ($custom_menu_items) {
		    foreach($custom_menu_items as $custom_menu_item) {
				$menu_items .= '
<li><a>guid . '">' . $custom_menu_item->post_title . '</a></li>
';
			}
		}

		return $menu_items;

	}
nitro2k01Medlem sedan aug. 20039 342 inlägg
#2

Känns som att du vill köra med inner join istället för left join. Och se till att du har index på alla ID-kolumner du har skapat själv.
Och för övrigt, du stoppar $custom_menu rakt in i queryn utan att escape:a värdet. Dåligt dåligt för säkerheten.

MeliMedlem sedan okt. 20133 inlägg
#3

Tack för ditt svar!

Jag har testat med inner istället för left men utan någon märkbar skillnad. Tabellerna är enbart default i Wordpress.

Någon annan tanke om möjlig lösning?

127 ms totalt · 3 externa anrop · v20260731065814-full.a4c710cd
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)