Some things I found when looking to DB:
- contenthash VARCHAR(40)... seems to be nullable. Is that correct?
- itemid BIGINT(10) unsigned ... also is nullable. Aren't all files going to have itemid?
- status BIGINT(10) ... stands for?
- CREATE INDEX mdl_file_con_ix ON mdl_files (contenthash) , shouldn't this be unique too?
- CREATE INDEX mdl_file_con2_ix ON mdl_files (contextid) , doesn't seem to be necessary as there is another index with "contextid" as first field.
- CREATE INDEX mdl_fileclea_con_ix ON mdl_files_cleanup (contenthash) , if index above (by contexthash) is unique, this should be too.