# Random \_id vs custom \_id?

**URL:** <https://discuss.elastic.co/t/random-id-vs-custom-id/271881>\
**Category:** Elasticsearch\
**Created:** [May 1, 2021, 5:26pm UTC](https://discuss.elastic.co/t/random-id-vs-custom-id/271881 "2021-05-01T17:26:46Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![rschirin](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rschirin/32/45283_2.png) [@rschirin](https://discuss.elastic.co/u/rschirin)\
**Post date:** [May 1, 2021, 5:26pm UTC](https://discuss.elastic.co/t/random-id-vs-custom-id/271881/1 "2021-05-01T17:26:46Z")

</div>

Hey there, I saw several topics about this point on the net but I never found exactly if I should prefer random or custom \_id.  
Is there anyone that can explain it to me? Furthermore, Is there any difference between a creation document and an update document using random or custom \_id?

Really thanks

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [May 1, 2021, 5:40pm UTC](https://discuss.elastic.co/t/random-id-vs-custom-id/271881/2 "2021-05-01T17:40:09Z")

</div>

Indexing documents with an auto generated id is more efficient than using a custom id so is ideal for immutable data. If you want to update data you may benefit from a custom id as updating gets easier and you do not need to search for the id first.

---

<div class="post-metadata">

**Author:** ![rschirin](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rschirin/32/45283_2.png) [@rschirin](https://discuss.elastic.co/u/rschirin)\
**Post date:** [May 1, 2021, 10:32pm UTC](https://discuss.elastic.co/t/random-id-vs-custom-id/271881/3 "2021-05-01T22:32:43Z")

</div>

Regarding update procedure. Using a custom \_id is probably better I know from the beginning the document that I want to update, while with a random \_id I should search it with a query? Am I right?

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [May 2, 2021, 6:26am UTC](https://discuss.elastic.co/t/random-id-vs-custom-id/271881/4 "2021-05-02T06:26:42Z")

</div>

If you are going to update a lot it makes sense to sacrifice a bit of indexing speed in order to simplify updates.

---

<div class="post-metadata">

**Author:** ![rschirin](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rschirin/32/45283_2.png) [@rschirin](https://discuss.elastic.co/u/rschirin)\
**Post date:** [May 2, 2021, 11:32am UTC](https://discuss.elastic.co/t/random-id-vs-custom-id/271881/5 "2021-05-02T11:32:05Z")

</div>

In your opinion, executing a query (first operation) to get the random \_id to be updated (second operation) is more expensive (cpu/jvm) than updating directly the document with the custom \_id?

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [May 2, 2021, 1:23pm UTC](https://discuss.elastic.co/t/random-id-vs-custom-id/271881/6 "2021-05-02T13:23:43Z")

</div>

Yes. It therefore comes down to the ratio of inserts to updates and which is best to optimise for.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [May 30, 2021, 1:24pm UTC](https://discuss.elastic.co/t/random-id-vs-custom-id/271881/7 "2021-05-30T13:24:42Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
