MYSQLを最適化する方法

WBOY
リリース: 2016-06-23 13:59:19
オリジナル
870 人が閲覧しました

SELECT *
FROM add
ORDER BY LENGTH(title) DESC
LIMIT 10

データが20万件あり、実行に1秒以上かかります。 。 。 。最適化する方法


ディスカッションへの返信 (解決策)

最適化する方法は、キャッシュを使用することをお勧めします。最適化できないのではないかと思いますが、1秒以上遅すぎることはありません。

200,000 のエントリは多くありません。データベースを再設計し、新しい列を作成し、LENGTH(title) を保存し、挿入時に strlen($title) を使用して計算することをお勧めします。この新しい列にはインデックスが付けられます。 (IDが自動インクリメントされる場合は、IDとこの新しい列を主キーとして使用してみてください)

なお、SELECT * を使用せず、SELECT タイトル、コンテンツ、日付などを使用して列を書き出します必要です。

LENGTH( title ) のインデックスを作成します

並べ替えルールが非常に奇妙です

desc SELECT *

FROM add
ORDER BY LENGTH( title ) DESC

LIMIT 10


SQL を分析し、キー フィールドをインデックスに追加します。

キーワードとインデックス作成により、効率が大幅に向上します。

select * はすべてのフィールドを返すことはできませんか? 保存時に LENGTH(title) の値を保存するフィールドを 1 つ追加し、この値を維持するために 2 つのトリガー (更新と挿入) を使用して、ここで維持することができます。列にインデックスを作成する方が良いです

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート