我有以下查询需要在某些页面上运行多达 40-50 次。
SELECT lid, dest, rebuild FROM {store_links_link}
WHERE source = :url;
Source 列是 URL,问题是 urls/source 的某些值确实很长,这会极大地减慢查询速度。
我知道它应该固定在应用程序级别,但是可以在 Mysql 配置中进行哪些更改来加速此查询?
store_links_link 表有超过 50,000 个链接,有些链接可能很长。我启用了查询缓存,这在一定程度上有所帮助。以前,该应用程序在 MySql 5.6 上运行,它能够很好地应对,但 Mariadb 10 根本无法应对。
输出SHOW CREATE TABLE
:
CREATE TABLE store_links_link
(
lid char(32) NOT NULL COMMENT 'Link ID using MD5, also act as cloaked link.',
accid int(10) unsigned NOT NULL DEFAULT 0 COMMENT 'Account ID from affiliate_links_account.accid.',
SOURCE varchar(5000) DEFAULT NULL,
dest text NOT NULL COMMENT 'Converted link URL with ID info.',
rebuild tinyint(3) unsigned NOT NULL DEFAULT 0 COMMENT 'Whether the account link should be rebuilt.',
COUNT int(10) unsigned NOT NULL DEFAULT 0 COMMENT 'Click count for cloaked link.',
nid varchar(255) DEFAULT NULL COMMENT 'Node ID',
created timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() COMMENT 'creation and upadtion time of source/dest link',
PRIMARY KEY (lid),
KEY affiliate_urls (source(768))
) ENGINE=InnoDB DEFAULT
CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='URL link conversion table.'