关于 OPTIMIZE TABLE COMMAND 的作用有几个问题。我知道这有助于清除碎片表中可能存在的开销。对我来说,有时我需要运行它,我想创建一个视图来从 django 中运行这些命令。
最好的方法是使用原始 SQL 还是有其他的 django orm 来帮助它?
关于 OPTIMIZE TABLE COMMAND 的作用有几个问题。我知道这有助于清除碎片表中可能存在的开销。对我来说,有时我需要运行它,我想创建一个视图来从 django 中运行这些命令。
最好的方法是使用原始 SQL 还是有其他的 django orm 来帮助它?
原始 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 应用程序可能会脱机,同时使用您的数据库管理工具。