mysql チュートリアルバッチ SQL 挿入のカラム概要
推奨 (無料): mysql チュートリアル
大量のデータを含む一部のシステムでは、クエリ効率が低いことに加えて、データベースが次のような問題に直面します。データがデータベースに保存されるまでに時間がかかるだけです。特にレポート システムの場合、データのインポートに費やす時間が毎日数時間から 10 時間以上かかる場合があります。したがって、データベース挿入のパフォーマンスを最適化することは理にかなっています。
#1 つの SQL ステートメントで複数のデータが挿入される
INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUES ('0', 'userid_0', 'content_0', 0);INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUES ('1', 'userid_1', 'content_1', 1);
INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUES ('0', 'userid_0', 'content_0', 0), ('1', 'userid_1', 'content_1', 1);
- SQL 実行の効率が高くなる主な理由は次のとおりです。マージ ログ (mysql の binlog および InnoDB のトランザクション ログ) の量が削減され、データ量とログ フラッシュの頻度が減り、効率が向上します。
- SQL ステートメントをマージすることにより、SQL ステートメントの解析数を減らし、ネットワーク送信 IO を削減することもできます。
#トランザクションでの挿入処理START TRANSACTION;INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUES ('0', 'userid_0', 'content_0', 0);INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUES ('1', 'userid_1', 'content_1', 1);...COMMIT;
- トランザクションを使用して、トランザクション作成の消費を削減します。すべての挿入は実行前に送信されます。
- データのテストと比較。トランザクションに適用されない書き込みテストとトランザクション操作を使用したテストに分割されます。
データの規則的な挿入
データの規則的な挿入とは、シーケンシャルソートデータベースは挿入時にインデックスデータを維持する必要があるため、不要なレコードがあるとインデックスを維持するコストが増加します。INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUES ('1', 'userid_1', 'content_1', 1);INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUES ('0', 'userid_0', 'content_0', 0);INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUES ('2', 'userid_2', 'content_2',2);INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUES ('0', 'userid_0', 'content_0', 0);INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUES ('1', 'userid_1', 'content_1', 1);INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUES ('2', 'userid_2', 'content_2',2);
テスト比較データ、ランダム データとシーケンシャル データのパフォーマンス比較
最初にインデックスを削除し、 insert 完了後のインデックスの再構築
包括的なパフォーマンス テスト
- データ トランザクションをマージする順序どおりの方法は、データ ボリュームが数千万に達した場合でも適切に実行されます。データ ボリュームが大きい場合は、順序付きデータ インデックスの配置がより便利であり、頻繁に読み取りおよび書き込み操作を行う必要がありません。より高い値を維持できます
#注意事項##SQL ステートメントには長さの制限があるため、マージするときはデータ SQL の長さ制限は、同じ SQL 内で超えてはなりません。この制限は、
max_allowed_packet- 構成を通じて変更できます。デフォルトは
- 1M
ですが、
という設定項目があり、この値を超えると innodb データがディスクにフラッシュされるため、効率が低下します。したがって、より良いアプローチは、データがこの値に達する前にトランザクションのコミットを実行することです。8M# に変更できます。 ## テスト中。
トランザクションのサイズを制御する必要があります。大きすぎると実行効率に影響する可能性があります。 MySQL には
innodb_log_buffer_size
以上がMySQLのバッチSQL挿入のパフォーマンス最適化の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于架构原理的相关内容,MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层,下面一起来看一下,希望对大家有帮助。

在mysql中,可以利用char()和REPLACE()函数来替换换行符;REPLACE()函数可以用新字符串替换列中的换行符,而换行符可使用“char(13)”来表示,语法为“replace(字段名,char(13),'新字符串') ”。

方法:1、利用right函数,语法为“update 表名 set 指定字段 = right(指定字段, length(指定字段)-1)...”;2、利用substring函数,语法为“select substring(指定字段,2)..”。

mysql的msi与zip版本的区别:1、zip包含的安装程序是一种主动安装,而msi包含的是被installer所用的安装文件以提交请求的方式安装;2、zip是一种数据压缩和文档存储的文件格式,msi是微软格式的安装包。

转换方法:1、利用cast函数,语法“select * from 表名 order by cast(字段名 as SIGNED)”;2、利用“select * from 表名 order by CONVERT(字段名,SIGNED)”语句。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于MySQL复制技术的相关问题,包括了异步复制、半同步复制等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了mysql高级篇的一些问题,包括了索引是什么、索引底层实现等等问题,下面一起来看一下,希望对大家有帮助。

在mysql中,可以利用REGEXP运算符判断数据是否是数字类型,语法为“String REGEXP '[^0-9.]'”;该运算符是正则表达式的缩写,若数据字符中含有数字时,返回的结果是true,反之返回的结果是false。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
