2016-11-25 7 views
0

のパフォーマンスを改善する方法:私は、MySQLのクエリを持っているMySQLのクエリ

select stu_photo, type, sign, type1, fname,regno1 
from stadm 
where regno1 = XXXXXX 
LIMIT 1000; 

stadmテーブルは67063行があります。上記クエリの実行時間は5-6Mintsです。 stu_photoおよびsign列の索引を追加できません(データ型はblob & longblobです)。Table_EngineeはInnodbです。どのようにパフォーマンスを上げることができますか(つまり、実行時間を短縮するには)?

答えて

0

あなたのクエリで確認できる改善点は、regno1列にインデックスを追加することです。これにより、潜在的にWHERE節が高速化されます。

はstu_photoのためにインデックスを追加し、これらの列は、あなたが私たちを示したクエリのパフォーマンスに影響を与えるべきではない列

に署名することができません。

クエリのパフォーマンスに影響するもう1つの要素は、結果セットをコンソールまたはアプリケーションに戻すのにかかる時間です。各レコードが非常に大きい場合は、わずか1000レコードでも状況が遅くなることがあります。

0

タイプvarcharから新しい列md5_regno1を作成し、regno1のmd5をそこに格納します。次のように新しい列の検索にインデックスを作成できます。

select stu_photo, type, sign, type1, fname,regno1 
from stadm 
where md5_regno1 = MD%('XXXXXX') 
LIMIT 1000; 
関連する問題