ホームページ  >  記事  >  バックエンド開発  >  SQL速度の遅さを解決する方法_PHPチュートリアル

SQL速度の遅さを解決する方法_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:01:151285ブラウズ

以下は私の長年の経験の要約です: ネットワーク プログラミングには常にデータベースの処理が含まれます。データベースを扱うときは、必ず SQL に触れることがあります。 SQL の実行を高速化する方法: この記事では、いくつかの効果的な方法を紹介します: 方法 1. 同じトランザクションの場合、複雑な SQL よりも複雑な SQL を使用する方が効率的です。ヒープの効率を高めるシンプルな SQL 補完。複数のクエリがある場合は、JOIN を上手に使用してください。
oRs=objDBC.Execute('SELECT * FROM Books') for(; !oRs.Eof; oRs.MoveNext()) { oRs2=objDBC.Execute('SELECT * FROM 著者 WHERE AuthorID='' oRs ('著者ID' ).value ''); Response.write(oRs('Title').value ' ' oRs2('Name') '
'); は次のコードよりも遅くなります: oRs=objDBC.Execute( 'SELECT Books.Title,Authors.Name FROM Books JOIN Authors ON Authors.AuthorID=Books.AuthorID'); for(; !oRs.Eof; oRs.MoveNext()) { Response.write(oRs('タイトル'). value ' ' oRs('Name') '
'); } 方法 2: 更新可能な Recordset の使用を避ける oRs=objDBC.Execute('SELECT * FROM Authors WHERE AuthorID=17',(some flags)); oRs('Name')='Karl Karlsson'; oRs.Update(); は次のコードよりも遅くなります: objDBC.Execute('UPDATE Authors SET Name='Karl Karlsson' WHERE AuthorID=17');データベースを更新するときは、バッチ更新を使用してすべての SQL を 1 つの大きなバッチ SQL にまとめ、一度に実行するようにしてください。これは、データを 1 つずつ更新するよりもはるかに効率的です。これは、トランザクション処理のニーズもより適切に満たします。 (JScript の場合) strSQL = 'SET XACT_ABORT ON '; strSQL ='トランザクションを開始します '; strSQL ='INSERT INTO 注文(OrdID,CustID,OrdDat) VALUES('9999', '1234',GETDATE()) '; strSQL ='INSERT INTO OrderRows(OrdID,OrdRow,Item,Qty) VALUES('9999 ','01','G4385',5) '; strSQL ='INSERT INTO OrderRows(OrdID,OrdRow,Item,Qty) VALUES('9999 ','02','G4726',1) '; strSQL ='トランザクションをコミット '; strSQL ='XACT_ABORT をオフにします '; objDBC.Execute(strSQL); このうち、SET XACT_ABORT OFF ステートメントは、後続のトランザクション処理中にエラーが発生した場合、完了したトランザクションがキャンセルされることを SQL Server に指示します。
方法 4. データベース インデックス 方法 5. 文字列の値のサイズが固定されていない場合は、char を使用するよりも varchar を使用する方が良いです。以前、フィールドが TEXT(255) として定義されているサンプル プログラムを見たことがありますが、その値は多くの場合わずか 20 文字でした。このデータ テーブルには 50,000 のレコードがあり、このデータベースは非常に大きくなり、大規模なデータベースは必ず速度が遅くなります。


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/631182.html技術記事以下は私の長年の経験の要約です: ネットワーク プログラミングには常にデータベースの処理が含まれます。データベースを扱うときは、必ず SQL に触れることがあります。 SQL の実行を高速化する方法について、この記事ではいくつかの効果的な方法を紹介します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。