sql >> データベース >  >> RDS >> Mysql

MySQLデータベースにApacheLuceneのインデックスを付け、同期を維持します

    インデックス作成/再インデックス作成をアプリケーションとは別に実行する限り、同期の問題が発生します。作業分野によっては、これは問題にならない場合がありますが、多くの同時ユーザーアプリケーションでは問題になります。

    数分ごとに非同期インデックスを実行するジョブシステムがある場合にも、同じ問題が発生しました。ユーザーは検索エンジンを使用して製品を見つけ、管理者が有効な製品スタックから製品を削除した場合でも、次のインデックス再作成ジョブが実行されるまで、フロントエンドでその製品を見つけました。これにより、非常に混乱し、再現性の低いエラーが第1レベルのサポートに報告されます。

    2つの可能性がありました。ビジネスロジックを検索インデックスの更新に緊密に接続するか、より緊密な非同期更新タスクを実装するかのいずれかです。後者を行いました。

    バックグラウンドでは、Tomcatアプリケーション内の専用スレッドで実行されているクラスがあり、更新を取得して並行して実行します。フロントエンドへのバックオフィス更新の待機時間は0.5〜2秒に短縮され、第1レベルのサポートの問題が大幅に軽減されます。また、可能な限り緩く結合されているため、別のインデックス作成エンジンを実装することもできます。



    1. SQL Server Management Studio(SSMS)でカスタムショートカットを作成する方法-SQL Server/TSQLチュートリアルパート10

    2. 特定の条件下でINSERTを防止するMySQLトリガー

    3. Rails4の移行でカスタム主キーを設定する際の問題

    4. ユーザー定義の集計(clr)をウィンドウ関数(以上)で使用することは可能ですか?