关于OPTIMIZE TABLE命令的作用有一些问题。我知道这有助于清除碎片表中可能出现的开销。对我来说,有时我需要运行它,我想在django中创建一个视图来运行这些命令。
是最好的方法做到这一点使用原始SQL或有一些其他django orm来帮助它?
Raw SQL是这里的方法。
from django.db import connections, transaction
cursor = connections['default'].cursor()
cursor.execute('OPTIMIZE TABLE;')
transaction.commit_unless_managed(using='my_db_alias')
最好的方法是直接执行自定义sql。
但是通过应用程序对这类系统或数据库进行管理是非常危险的;如果这个命令出了问题,你的django应用程序可能会离线,并带走你的数据库管理工具。