大量のデータを取得するための最適な MySQL 設定
大量のデータが取得されるため、MySQL クエリで重大なパフォーマンスの問題が発生しています。パフォーマンスを最適化するには、次の戦略を検討してください:
データベース エンジンの選択:
クエリの最適化:
サーバー構成:
追加の考慮事項:
サーバー側処理のストアド プロシージャの例:
InnoDB テーブル:
CREATE TABLE `results_innodb` ( `rc` tinyint unsigned NOT NULL, `df` int unsigned NOT NULL default 0, `id` int unsigned NOT NULL, `val` double(10,4) NOT NULL default 0, `ts` timestamp NOT NULL default now(), PRIMARY KEY (`rc`, `df`, `id`) ) ENGINE=innodb;
ストアド プロシージャ:
CREATE PROCEDURE process_results_innodb( IN p_rc tinyint unsigned, IN p_df int unsigned ) BEGIN DECLARE done TINYINT DEFAULT 0; DECLARE result_cur CURSOR FOR SELECT `id` FROM `results_innodb` WHERE `rc` = p_rc AND `df` > p_df; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; OPEN result_cur; REPEAT FETCH result_cur INTO @id; -- Do processing here SET @count = @count + 1; UNTIL done END REPEAT; CLOSE result_cur; SELECT @count as `counter`; END
以上が大量のデータを取得するために MySQL を最適化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。