The good people at Gravity Forms were kind enough to give me a developer license to their plugin, to allow me to analyze their indexes on request from a user of Index WP MySQL For Speed. These are the tables.
All of them look like they have OK indexes, except wp_gf_entry_meta, which has a couple of prefix indexes.
Next step: gather some monitor traces to see what queries are big.
CREATE TABLE wp_gf_draft_submissions (
uuid CHAR(32) NOT NULL COLLATE 'utf8mb4_unicode_520_ci',
email VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_520_ci',
form_id MEDIUMINT(10) UNSIGNED NOT NULL,
date_created DATETIME NOT NULL,
ip VARCHAR(45) NOT NULL COLLATE 'utf8mb4_unicode_520_ci',
source_url LONGTEXT NOT NULL COLLATE 'utf8mb4_unicode_520_ci',
submission LONGTEXT NOT NULL COLLATE 'utf8mb4_unicode_520_ci',
PRIMARY KEY (uuid) USING BTREE,
INDEX form_id (form_id) USING BTREE
)
COLLATE='utf8mb4_unicode_520_ci'
ENGINE=InnoDB
;
CREATE TABLE wp_gf_entry (
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
form_id MEDIUMINT(10) UNSIGNED NOT NULL,
post_id BIGINT(10) UNSIGNED NULL DEFAULT NULL,
date_created DATETIME NOT NULL,
date_updated DATETIME NULL DEFAULT NULL,
is_starred TINYINT(10) NOT NULL DEFAULT '0',
is_read TINYINT(10) NOT NULL DEFAULT '0',
ip VARCHAR(45) NOT NULL COLLATE 'utf8mb4_unicode_520_ci',
source_url VARCHAR(200) NOT NULL DEFAULT '' COLLATE 'utf8mb4_unicode_520_ci',
user_agent VARCHAR(250) NOT NULL DEFAULT '' COLLATE 'utf8mb4_unicode_520_ci',
currency VARCHAR(5) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_520_ci',
payment_status VARCHAR(15) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_520_ci',
payment_date DATETIME NULL DEFAULT NULL,
payment_amount DECIMAL(19,2) NULL DEFAULT NULL,
payment_method VARCHAR(30) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_520_ci',
transaction_id VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_520_ci',
is_fulfilled TINYINT(10) NULL DEFAULT NULL,
created_by BIGINT(10) UNSIGNED NULL DEFAULT NULL,
transaction_type TINYINT(10) NULL DEFAULT NULL,
status VARCHAR(20) NOT NULL DEFAULT 'active' COLLATE 'utf8mb4_unicode_520_ci',
source_id BIGINT(10) UNSIGNED NULL DEFAULT NULL,
PRIMARY KEY (id) USING BTREE,
INDEX form_id (form_id) USING BTREE,
INDEX form_id_status (form_id, status) USING BTREE
)
COLLATE='utf8mb4_unicode_520_ci'
ENGINE=InnoDB
;
CREATE TABLE wp_gf_entry_meta (
id BIGINT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
form_id MEDIUMINT(10) UNSIGNED NOT NULL DEFAULT '0',
entry_id BIGINT(10) UNSIGNED NOT NULL,
meta_key VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_520_ci',
meta_value LONGTEXT NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_520_ci',
item_index VARCHAR(60) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_520_ci',
PRIMARY KEY (id) USING BTREE,
INDEX meta_key (meta_key(191)) USING BTREE,
INDEX entry_id (entry_id) USING BTREE,
INDEX meta_value (meta_value(191)) USING BTREE
)
COLLATE='utf8mb4_unicode_520_ci'
ENGINE=InnoDB
;
CREATE TABLE wp_gf_entry_notes (
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
entry_id INT(10) UNSIGNED NOT NULL,
user_name VARCHAR(250) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_520_ci',
user_id BIGINT(10) NULL DEFAULT NULL,
date_created DATETIME NOT NULL,
value LONGTEXT NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_520_ci',
note_type VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_520_ci',
sub_type VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_520_ci',
PRIMARY KEY (id) USING BTREE,
INDEX entry_id (entry_id) USING BTREE,
INDEX entry_user_key (entry_id, user_id) USING BTREE
)
COLLATE='utf8mb4_unicode_520_ci'
ENGINE=InnoDB
;
CREATE TABLE wp_gf_form (
id MEDIUMINT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
title VARCHAR(150) NOT NULL COLLATE 'utf8mb4_unicode_520_ci',
date_created DATETIME NOT NULL,
date_updated DATETIME NULL DEFAULT NULL,
is_active TINYINT(10) NOT NULL DEFAULT '1',
is_trash TINYINT(10) NOT NULL DEFAULT '0',
PRIMARY KEY (id) USING BTREE
)
COLLATE='utf8mb4_unicode_520_ci'
ENGINE=InnoDB
;
CREATE TABLE wp_gf_form_meta (
form_id MEDIUMINT(10) UNSIGNED NOT NULL,
display_meta LONGTEXT NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_520_ci',
entries_grid_meta LONGTEXT NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_520_ci',
confirmations LONGTEXT NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_520_ci',
notifications LONGTEXT NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_520_ci',
PRIMARY KEY (form_id) USING BTREE
)
COLLATE='utf8mb4_unicode_520_ci'
ENGINE=InnoDB
;
CREATE TABLE wp_gf_form_revisions (
id BIGINT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
form_id MEDIUMINT(10) UNSIGNED NOT NULL,
display_meta LONGTEXT NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_520_ci',
date_created DATETIME NOT NULL,
PRIMARY KEY (id) USING BTREE,
INDEX date_created (date_created) USING BTREE,
INDEX form_id (form_id) USING BTREE
)
COLLATE='utf8mb4_unicode_520_ci'
ENGINE=InnoDB
;
CREATE TABLE wp_gf_form_view (
id BIGINT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
form_id MEDIUMINT(10) UNSIGNED NOT NULL,
date_created DATETIME NOT NULL,
ip CHAR(15) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_520_ci',
count MEDIUMINT(10) UNSIGNED NOT NULL DEFAULT '1',
PRIMARY KEY (id) USING BTREE,
INDEX date_created (date_created) USING BTREE,
INDEX form_id (form_id) USING BTREE
)
COLLATE='utf8mb4_unicode_520_ci'
ENGINE=InnoDB
;