1. A method comprising: accessing log data specifying one or more strings having at least one dynamic portion and at least one static portion; and generating a pattern-based database, including one or more records representing compression of the log data, by: parsing the one or more strings into one or more key-value pairs; determining dynamic portions and static portions of values of the one or more key-value pairs of the strings by comparing a plurality of the one or more key-value pairs; assigning pattern values and dynamic values to the strings based on the determined dynamic portions and the static portions, wherein the pattern values include at least one determined static portion and indicate at least one location associated with at least one determined dynamic portion, and wherein the pattern values and dynamic values are configured to provide compression of the strings within the records of the pattern-based database, and recursively updating the dynamic portions and the static portions of the one or more strings based on the comparisons between the one or more key-value pairs, wherein the updating includes designating at least one assigned dynamic value and/or assigned pattern value as partially dynamic or partially static, and wherein the updated pattern values and/or updated dynamic values are configured to provide additional compression of the strings within the records of the pattern-based database.