ユーザーが入力している間にハッシュタグの提案を実装しようとしているので、次のようなハッシュタグ テーブルを作成しています。
CREATE TABLE IF NOT EXISTS `hashtags_weight` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`hashtag` varchar(140) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
`tot` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`),
KEY `hashtag` (`hashtag`,`tot`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
後でクエリします。
SELECT hashtag FROM hashtags_weight WHERE hashtag LIKE 'foob%' ORDER BY tot DESC
ハッシュタグを取得しているソースは、以前に挿入されたハッシュタグからのものです。さて、これはすべて非常に基本的なものですが、最も使用されているケースのハッシュタグを提案することが望ましいと思いました. 次のテーブルがあるとします。
10 Foobar
5 FooBar
2 foobar
これは、Foobar が 10 回、FooBar が 5 回、Foobar が 2 回使用されたことを意味します。ここで、ハッシュタグを 17 としてカウントし、オートコンプリート中に Foobar のみを提案します。
もちろん、いくつかの配列の並べ替えでそれを行うことはできますが、すでに時間がかかっていることがわかります (行がたくさんあります)。この問題に対する別のアプローチを聞きたいと思います。
ps このジョブは毎晩実行されるため、超高速である必要はありません。きちんとやっているか確認したいだけです。もちろん、Db にテーブルを追加することもできますが、問題はありません。