diff --git a/db/migrate/20190424065841_add_post_image_indexes.rb b/db/migrate/20190424065841_add_post_image_indexes.rb
new file mode 100644
index 00000000000..eb1e4aa07a8
--- /dev/null
+++ b/db/migrate/20190424065841_add_post_image_indexes.rb
@@ -0,0 +1,24 @@
+class AddPostImageIndexes < ActiveRecord::Migration[5.2]
+  def change
+
+    %w{
+      large_images
+      broken_images
+      downloaded_images
+    }.each do |field|
+
+      execute <<~SQL
+        DELETE FROM post_custom_fields f
+        WHERE name = '#{field}' AND id > (
+          SELECT MIN(f2.id) FROM post_custom_fields f2
+            WHERE f2.post_id = f.post_id AND f2.name = f.name
+        )
+      SQL
+
+      add_index :post_custom_fields, [:post_id],
+        name: "post_custom_field_#{field}_idx",
+        unique: true,
+        where: "name = '#{field}'"
+    end
+  end
+end