MySQLのクエリパケット(ループの最適化)

         背景:地方、都市、地区は、フロントエンド構造に固定されたループのために組み立てたデータが地方都市によって単離し、JSON、それぞれ存在する3つの州のテーブルを返さ三単離された地区を連動して組み立てする必要が,, 30秒以上を要求

        最適化:単離された州、都市は、文字列中にスプライシングGROUP_CONCAT関数JSONを使用して省、市対応郡、地区から直接単離し、次いでフロントエンド・ノード・データ構造に戻ります。全体の要求は約3秒かかります

表の構造:

県:

市:

 エリア/県

SQL:

文字列のSQL = "c.cityid値を選択c.cityテキスト、GROUP_CONCAT({\ "テキスト\" \" '、領域、 '\ "\ "の値は、\" \"'、「\'、エリアID }」)opc_area_cities`がJOIN `C FROM子供opc_area_areas A ON a.cityid = c.cityid WHERE c.provinceid =" c.cityid ASC BY c.cityid ORDER BY GROUP?。

クエリ結果:

コード:

一覧<録画>地方= AreaProvinces.dao.getAreaProvincesList( ); // 保存
(録音P:州)のために{
  一覧<録画> = AreaCities.dao.getAreaCities都市(p.get( "値")); // GETそして、地区JSON文字列は、対応する都市である
  ため(レコードレコード:都市){
    文字列は=子供( "子供")record.get;
    JSONArray jsonArr = JSONArray.fromObject( "["子供+ + "]"); // JSONに戻りゾーン後
    、record.set( "子"、jsonArr)
  }
  P.SET( "子"、都市);
}

子どもたちは結果を印刷します:

   "{\" テキスト\ ":\" 延庆县\ "\ "値\" \ "110229 \"}、{\ "テキスト\":\ "密云县\"、\ "値\" \" 110228 \ "}"

おすすめ

転載: www.cnblogs.com/binaryStar/p/12662552.html