SELECT *
FROM add
ORDER BY LENGTH(title) DESC
LIMIT 10
データが20万件あり、実行に1秒以上かかります。 。 。 。最適化する方法
200,000 のエントリは多くありません。データベースを再設計し、新しい列を作成し、LENGTH(title) を保存し、挿入時に strlen($title) を使用して計算することをお勧めします。この新しい列にはインデックスが付けられます。 (IDが自動インクリメントされる場合は、IDとこの新しい列を主キーとして使用してみてください)
なお、SELECT * を使用せず、SELECT タイトル、コンテンツ、日付などを使用して列を書き出します必要です。LENGTH( title ) のインデックスを作成します
並べ替えルールが非常に奇妙です
FROM add
ORDER BY LENGTH( title ) DESC
SQL を分析し、キー フィールドをインデックスに追加します。
キーワードとインデックス作成により、効率が大幅に向上します。
select * はすべてのフィールドを返すことはできませんか? 保存時に LENGTH(title) の値を保存するフィールドを 1 つ追加し、この値を維持するために 2 つのトリガー (更新と挿入) を使用して、ここで維持することができます。列にインデックスを作成する方が良いです