As of the late 2010s, multiple BibTeX-supporting reference management software, which I have used and can accept BibTeX databases as input, would fail to load BibTeX databases with more than 5000 BibTeX entries.
While LaTeX can support multiple BibTeX databases/files in its \bibliography{}
command, I want to simplify the process/heuristic for creating the BibTeX key that I assign for/to each BibTeX entry in my BibTeX database(s). E.g., to create my preferred BibTeX key, I use the author's last name, or the first co-author's last name, appended by the year. Smith2000 is an example. For publications that yield multiple BibTeX keys with the same preferred BibTeX key, I would append a letter (assigned in alphabetical order) to the preferred BibTeX key. This is based on the author-date method for referencing publications, or Harvard referencing style or Harvard citation style. It is a type of parenthetical referencing.
Else, it would cause confusion. E.g., if multiple BibTeX databases for a given LaTeX document use the same BibTeX key for different references, this would create problems when interpreting/processing the BibTeX databases/files. My guess is that the first occurring instance of the BibTeX key would have its entry used, while the rest are ignored. Also, if I am unable to track the error message to the subset of BibTeX databases/files with the problem, I would have problems addressing/fixing the problem.
Such problems can be avoided by using a script to create a set of all the BibTeX keys that are found in all the BibTeX databases. If any repeated instances of BibTeX keys are found, it can report an error/warning, so that we can be notified of the problem and fix it by changing the repeating/"offending" BibTeX keys to new BibTeX keys.
Reference for using multiple BibTeX databases/files:
https://en.wikibooks.org/wiki/LaTeX/Bibliography_Management#Getting_current_LaTeX_document_to_use_your_.bib_file
I do not have problems with typesetting LaTeX documents with 20,000 references, except for using the \cite{}
LaTeX command to cite more than 20,000 references in a LaTeX document. I created a workaround for the problem by partitioning the list of BibTeX keys into multiple cite commands. I used a Python script to grab a list of all the BibTeX keys in my BibTeX database/file, and print the BibTeX keys in sets of 10 per \cite{}
LaTeX command.
You can validate this by using the \nocite{*}
LaTeX command to list all the BibTeX entries in the bibliography of the LaTeX document, without having to specify all of the BibTeX keys in the BibTeX database(s).
https://en.wikibooks.org/wiki/LaTeX/Bibliography_Management#No_cite
Using a single BibTeX database also makes it easier for me to share my BibTeX database with others. I do not need to keep track of where all the BibTeX databases/files are. I use a single BibTeX database for all LaTeX documents.
An advantage of sufficiently small BibTeX databases, of less than 1,000 BibTeX entries, multiple open-source, and monetarily free, reference management software would accept these BibTeX databases. Consequently, their BibTeX parsers would check for compliance with the BibTeX language. Else, you have to use the aforementioned \nocite{*}
LaTeX command to typeset a simple LaTeX document to check if your BibTeX database(s) comply with the BibTeX language specification. You can also build your own parser, or script to check for common problems that you may make when creating and updating your BibTeX database(s).
.bib
file if you ever have to send your document source to journals etc. Production editors tend not to be overly amused by.bib
files that contain thousands of entries for a document that only has twenty or so citations.