こんにちは
まず、「設定→オプション→レンダリングタブ」で「複数の CPU コアを使用する」にチェックが
入っていますでしょうか。また、ラスタデータの座標系とプロジェクト(表示)の座標系が不一致の
場合、画像を歪めて表示させる必要があるため、ベクタデータにくらべて描画に時間がかかります。
そのため(作業中は)できるだけプロジェクトの座標系はラスタデータのものと合わせることをおすすめします。
根本的な解決策ではありませんが、問題の解消につながる場合がありますので、まずはアドバイスしました。
さて。
以前、タイル画像(ここでは地理院タイルのように、各ズームレベルにおける 256x256 画像)を作成し、
出来上がった大量のタイル画像を MBTiles 形式という、単ファイル形式にしたことがありました。
そのかわり、(一般に都市計画図等の大縮尺地図で使われる)平面直角座標系のラスタデータから
タイル画像で使われる疑似(真球)メルカトル図法への座標系の変換を行う必要があるため、
画像の生成には、そこそこのスペックのサーバで、そこそこの時間をかける必要がありました。
あらかじめ最適化された画像を、大量の 256x256 の画像データとして格納しているため
ファイル自体が数ギガバイトあっても QGIS 上での動作は軽快でした。
気軽に作れる方法ではありませんが、このような手法もあることを記しておきます。
参考までに、
1. ラスタデータに位置情報が付加されていない場合は、ワールドファイル等で付与する。
2. gdalbuildvrt で複数のラスタをひとつの仮想ラスタにする
3. gdal_translate で -a_srs を使って座標系をもたない仮想ラスタから座標系をもつ仮想ラスタに変換する
3'. 場合によっては gdal_translate の -expand rgba でマルチバンドの仮想ラスタにする必要があるかも
4. gdal2tiles.py でタイル画像化を行う
5. mb-util で MBTiles ファイルに変換
元のラスタデータが原因で 2. とか 3. でうまくいかないことがあったりして、かなり試行錯誤しました。
(そのときは確かタグの解像度情報がおかしな値のファイルがいくつかあった。)