MySQL 的资源组功能,挺适合做细颗粒度的资源分配优化。通过给线程“分组”,你可以控制不同 SQL 任务的执行优先级,响应也快,配置也不复杂,蛮灵活的。
资源组的核心是CPU 亲和性和线程优先级,可以把某些不那么重要的任务,比如批,放到优先级低一点的组里,避免抢占关键业务资源。
平时你要是做多租户环境或者数据库调优比较多,这功能用起来真的香。像设置优先级只要一行:CREATE RESOURCE GROUP myGroup WITH (priority = 5);
,挺直观的。
权限方面分得也蛮细,管理权限和使用权限是分开的,安全性也有考虑到。至于查询和监控资源组分配,可以直接查information_schema和performance_schema表,数据还挺全。
注意一点:Linux 上用资源组要配点系统参数,MySQL 版本太老的也不一定支持,建议提前确认下环境。
如果你经常跟高并发、线程调度打交道,可以考虑把资源组用起来,事半功倍。