From f9ed58ad52b4ef1fe8068fa88926b26f504ce147 Mon Sep 17 00:00:00 2001 From: "Brian S. Stephan" Date: Sat, 5 Apr 2014 23:09:50 -0500 Subject: [PATCH] Markov: some indexes to MarkovState, might help --- .../0004_more_indexes_on_markov_state.py | 50 +++++++++++++++++++ markov/models.py | 4 ++ 2 files changed, 54 insertions(+) create mode 100644 markov/migrations/0004_more_indexes_on_markov_state.py diff --git a/markov/migrations/0004_more_indexes_on_markov_state.py b/markov/migrations/0004_more_indexes_on_markov_state.py new file mode 100644 index 0000000..834a7a1 --- /dev/null +++ b/markov/migrations/0004_more_indexes_on_markov_state.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- +from south.utils import datetime_utils as datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding index on 'MarkovState', fields ['context', 'k1', 'k2'] + db.create_index(u'markov_markovstate', ['context_id', 'k1', 'k2']) + + # Adding index on 'MarkovState', fields ['context', 'v'] + db.create_index(u'markov_markovstate', ['context_id', 'v']) + + + def backwards(self, orm): + # Removing index on 'MarkovState', fields ['context', 'v'] + db.delete_index(u'markov_markovstate', ['context_id', 'v']) + + # Removing index on 'MarkovState', fields ['context', 'k1', 'k2'] + db.delete_index(u'markov_markovstate', ['context_id', 'k1', 'k2']) + + + models = { + u'markov.markovcontext': { + 'Meta': {'object_name': 'MarkovContext'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '64'}) + }, + u'markov.markovstate': { + 'Meta': {'unique_together': "(('context', 'k1', 'k2', 'v'),)", 'object_name': 'MarkovState', 'index_together': "[['context', 'k1', 'k2'], ['context', 'v']]"}, + 'context': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['markov.MarkovContext']"}), + 'count': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'k1': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'k2': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'v': ('django.db.models.fields.CharField', [], {'max_length': '128'}) + }, + u'markov.markovtarget': { + 'Meta': {'object_name': 'MarkovTarget'}, + 'chatter_chance': ('django.db.models.fields.IntegerField', [], {'default': '0'}), + 'context': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['markov.MarkovContext']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '64'}) + } + } + + complete_apps = ['markov'] \ No newline at end of file diff --git a/markov/models.py b/markov/models.py index c86845c..ef62e7d 100644 --- a/markov/models.py +++ b/markov/models.py @@ -54,6 +54,10 @@ class MarkovState(models.Model): context = models.ForeignKey(MarkovContext) class Meta: + index_together = [ + ['context', 'k1', 'k2'], + ['context', 'v'], + ] permissions = { ('import_log_file', "Can import states from a log file"), ('teach_line', "Can teach lines"),