私たちのデータベースには、ユーザーの動作を追跡するテーブルがあります。 基本的に、ユーザーが閲覧した各ページはこれを追跡します。私たちは次のことを持っている表で30millionのレコードテーブルをクリーンアップする方法
:
id | user_id | user_ip | page | created_on
ユーザーはPCからサイトをチェックし、の彼は、システムが「ページ」の下に保存し、特定の記事に続く「/記事/特定を/チェックしましょうしかし、ユーザーが同じページを携帯電話のウェブサイトからチェックすると、「http://m.website.com/article/specific/slug」
これを変更しようとしています。
私たちは、列挙型(PC、M)としてデータベースに新しいフィールドを追加したので、私たちは常に「ページ」の下に保存するデバイスに関係なく欲しい「/記事/特定/スラッグ」
1つの問題は、ということです過去3,000万件のレコードを変換する必要があります。
意味「http://m.website.com」が存在するかどうかをチェックするクエリを作成し、「http://m.website.com」を削除し、「デバイス」フィールドを「m」として更新するフィールドを更新します。
誰か助けてもらえますか?
問題は何ですか。そのクエリを書くには?またはライブサーバー上の3000万行のテーブルに対して実行する方法は? – cherouvim
質問は実際に私はクエリが必要ですが、実際には3000万行で実行できるものです。 – Hossj
MySQLの負荷が懸念される場合は、常にテーブルをファイルにダンプし、 'sed'などのコマンドラインツールを使用して(おそらく別のサーバでも)変更を加え、ファイルからテーブルをインポートします –