私はIN()ステートメントを使用するクエリでMySQLに問題があり、インデックスを使用できないことがあることを読んでいます。サブクエリを使用しないと本当にそうですか? どのアプローチが良いですか?パフォーマンスの違いはありますか? SELECT *
FORM `somewhere`
WHERE
`id` = 3
OR `id` = 5
OR `id` = 15
あなたには、いくつかのモデルがある場合: class Teacher(models.Model):
name = models.CharField(max_length=50)
class Student(models.Model):
age = models.PositiveIntegerField()
teacher = models.ForeignKey(T
冗長クエリブロックを使用するクエリの速度を最適化しようとしています。私はSQL Server 2008の下のクエリを使用して行ごとに参加しようとしています。私たちは同じ円柱のデータを取得するために、複数の異なるテーブルでそれに参加する必要がある以外 Select * from
(<complex subquery>) cq
join table1 t1 on (cq.id=t1.id)
un
次の2つのクエリで同じ結果が得られますが、group byを使用するクエリは高速に実行されます。これは、最適化されたクエリがグループを可能な限り使用することを支持することを示していますか?それとも、私はある種の特別な事件を経験している可能性は高いですか? 速くクエリ(私にはあまり直感的): SELECT A.Advertiser
FROM (SELECT TOP (100) PERCEN
SQL Server 2008の "OPTIMIZE FOR UNKNOWN"クエリプランオプションの理論とビューを読んだことがあります。私はそれが十分にうまくいくことを理解する。 私はいくつかの限られた実験を行い、暖かいキャッシュでは100kを超える行にしか効果がなかったことがわかりました。しかし、これはシンプルなテーブルであり、結合やフィルタリングなどのないクエリであった。コールドキャッシュで
ネストセットモデルで使用するインデックスを理解する際に問題が発生しています。クエリは次のとおりです。 SELECT `node`.`id`,(COUNT(parent.id) - 1) AS `depth`,`name` FROM `categories` AS `parent`
INNER JOIN `categories` AS `node` ON (`node`.`lft` BETWEEN
インデックス作成に関して私は迷っています。私はクライアントのために構築しています適度に複雑なWebアプリケーションを持っており、それにはいくつかの数(*)は、すべての非常に遅い実行しているクエリ(0.3秒) ここ SELECT COUNT(*) AS `count`
FROM `vehicles`
WHERE `VehicleLocation_province` = 'Alberta'
AN