More efficient way to list posts by category [duplicate]

My suggestion would be to pass different arguments to Wp_Query Class.

using ‘cat’ property, passing category Ids.

<?php
    $custom_query = new WP_Query(
        array(
            'cat' => '1,2,3,4'
            'post_type' => 'my_post_type',
            'posts_per_page' => -1,
            'orderby' => 'title',
            'order' => 'ASC'
        )
    ); 
?>

OR
using ‘category_name’ property passing category slug’s as string parameters.

<?php
    $custom_query = new WP_Query(
        array(
            'category_name' => 'category1+category2'
            'post_type' => 'my_post_type',
            'posts_per_page' => -1,
            'orderby' => 'title',
            'order' => 'ASC'
        )
    ); 
?>

More info about Wp_Query parameters:
http://codex.wordpress.org/Class_Reference/WP_Query#Category_Parameters

Hope it helps.
Good Luck.
Att