mysqlテーブルカラムのコピー、mysql接続時間とメモリ制御
mysql テーブル列のレプリケーション、mysql 接続時間、メモリ制御。
一時テーブル temp_t とメインテーブル table1 の 2 つのテーブルがあり、どちらも MyISAM で、それぞれに約 28W のレコードがあります。
cron はネットワークから毎分何らかの情報を取得するようにスケジュールし、まずそれを temp_t (頻繁な書き込み) に保存します。
次に、cron は 10 分ごとに temp_t からメイン テーブル table1 に情報をコピーするようにスケジュールします (頻繁に読み取り、10 分ごとに書き込みます)。
temp_t フィールド id (auto_increment)、title (varchar (200))、content (varchar (500))、date (DATETIME)、mykey (tinyint (1) デフォルト 1、これはメインにコピーされたかどうかを判断するために使用されます。テーブル、2)
のコピー後に UPDATE
table1 フィールド ID (auto_increment なし)、タイトル (varchar(200))、内容 (varchar(500))、日付 (DATETIME)
28W レコード、各データ テーブルは約 300MB、各更新には約 2K ~ 3K レコードが必要です。
直接コピーすると、MYSQL の接続時間が長すぎて、MYSQL のパフォーマンスが低下し、Table1 にテーブル ロックのような現象が発生し、Table1 のクエリ時間が大幅に長くなります。
require dirname(__FILE__) . '/../connection.php';<br /> mysql_select_db("news",$connextion);<br /> mysql_query("SET NAMES utf8");<br /> $query = mysql_query("SELECT * FROM temp_t where mykey = '1'");<br /> while($rows = mysql_fetch_array($query)){<br /> mysql_query("UPDATE temp_t SET mykey='2' WHERE id='".mysql_real_escape_string($rows['id'])."'");<br /> mysql_query("INSERT INTO table1 (id,title,content,date) values ('".mysql_real_escape_string($rows['id'])."','".mysql_real_escape_string($rows['title'])."','".mysql_real_escape_string($rows['content'])."','".mysql_real_escape_string($rows['date'])."'");<br /> }<br /> mysql_close($connextion);
そこで、まず temp_t のデータからレコードを読み取り、json 配列として保存してから、そのデータを table1 にコピーしたいのですが、時々「メモリを割り当てられません」というエラーが発生し、サーバー全体がクラッシュします (json 配列です)大きすぎると大量のメモリを消費します)。 PS: php.ini のメモリ制限が 64M に増加しました (しかし、根本的な原因ではなく症状を治療するものだといつも感じています。このようなコピー プロセスはそれほど多くのメモリを必要としません。重要なのは、コードが不合理であるということです) 。
require dirname(__FILE__) . '/../connection.php';<br /> mysql_select_db("news",$connextion);<br /> mysql_query("SET NAMES utf8");<br /> $query = mysql_query("SELECT * FROM temp_t where mykey = '1'");<br /> $jon = array();<br /> while($rows = mysql_fetch_array($query)){<br /> $jon['a'] = $rows['id'];<br /> $jon['b'] = $rows['title'];<br /> $jon['c'] = $rows['content'];<br /> $jon['d'] = $rows['date'];<br /> $pjon .= json_encode($jon).',';<br /> }<br /> mysql_close($connextion);<br /> $njso = json_decode('['.substr($pjon,0,-1).']');<br /> foreach($njso as $nx){ <br /> if($nx->a){<br /> require dirname(__FILE__) . '/../connection.php';<br /> mysql_select_db("news",$connextion);<br /> mysql_query("SET NAMES utf8");<br /> mysql_query("UPDATE temp_t SET mykey='2' WHERE id='".mysql_real_escape_string($nx->a)."'");<br /> mysql_query("INSERT INTO table1 (id,title,content,date) values ('".mysql_real_escape_string($nx->a)."','".mysql_real_escape_string($nx->b)."','".mysql_real_escape_string($nx->c)."','".mysql_real_escape_string($nx->d)."'");<br /> mysql_close($connextion);<br /> }<br /> }
それで、エビを助けてください。テーブル情報をコピーするためのもっと経済的なコードはありますか? mysql の接続時間を短くし、メモリ消費量を少なくする必要がありますか?皆さん、ありがとうございました。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

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

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

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









MySQLは、オープンソースのリレーショナルデータベース管理システムです。 1)データベースとテーブルの作成:createdatabaseおよびcreateTableコマンドを使用します。 2)基本操作:挿入、更新、削除、選択。 3)高度な操作:参加、サブクエリ、トランザクション処理。 4)デバッグスキル:構文、データ型、およびアクセス許可を確認します。 5)最適化の提案:インデックスを使用し、選択*を避け、トランザクションを使用します。

次の手順でphpmyadminを開くことができます。1。ウェブサイトコントロールパネルにログインします。 2。phpmyadminアイコンを見つけてクリックします。 3。MySQL資格情報を入力します。 4.「ログイン」をクリックします。

MySQLはオープンソースのリレーショナルデータベース管理システムであり、主にデータを迅速かつ確実に保存および取得するために使用されます。その実用的な原則には、クライアントリクエスト、クエリ解像度、クエリの実行、返品結果が含まれます。使用法の例には、テーブルの作成、データの挿入とクエリ、および参加操作などの高度な機能が含まれます。一般的なエラーには、SQL構文、データ型、およびアクセス許可、および最適化の提案には、インデックスの使用、最適化されたクエリ、およびテーブルの分割が含まれます。

MySQLは、そのパフォーマンス、信頼性、使いやすさ、コミュニティサポートに選択されています。 1.MYSQLは、複数のデータ型と高度なクエリ操作をサポートし、効率的なデータストレージおよび検索機能を提供します。 2.クライアントサーバーアーキテクチャと複数のストレージエンジンを採用して、トランザクションとクエリの最適化をサポートします。 3.使いやすく、さまざまなオペレーティングシステムとプログラミング言語をサポートしています。 4.強力なコミュニティサポートを提供し、豊富なリソースとソリューションを提供します。

Redisは、単一のスレッドアーキテクチャを使用して、高性能、シンプルさ、一貫性を提供します。 I/Oマルチプレックス、イベントループ、ノンブロッキングI/O、共有メモリを使用して同時性を向上させますが、並行性の制限、単一の障害、および書き込み集約型のワークロードには適していません。

MySQLとSQLは、開発者にとって不可欠なスキルです。 1.MYSQLはオープンソースのリレーショナルデータベース管理システムであり、SQLはデータベースの管理と操作に使用される標準言語です。 2.MYSQLは、効率的なデータストレージと検索機能を介して複数のストレージエンジンをサポートし、SQLは簡単なステートメントを通じて複雑なデータ操作を完了します。 3.使用の例には、条件によるフィルタリングやソートなどの基本的なクエリと高度なクエリが含まれます。 4.一般的なエラーには、SQLステートメントをチェックして説明コマンドを使用することで最適化できる構文エラーとパフォーマンスの問題が含まれます。 5.パフォーマンス最適化手法には、インデックスの使用、フルテーブルスキャンの回避、参加操作の最適化、コードの読み取り可能性の向上が含まれます。

データベースとプログラミングにおけるMySQLの位置は非常に重要です。これは、さまざまなアプリケーションシナリオで広く使用されているオープンソースのリレーショナルデータベース管理システムです。 1)MySQLは、効率的なデータストレージ、組織、および検索機能を提供し、Web、モバイル、およびエンタープライズレベルのシステムをサポートします。 2)クライアントサーバーアーキテクチャを使用し、複数のストレージエンジンとインデックスの最適化をサポートします。 3)基本的な使用には、テーブルの作成とデータの挿入が含まれ、高度な使用法にはマルチテーブル結合と複雑なクエリが含まれます。 4)SQL構文エラーやパフォーマンスの問題などのよくある質問は、説明コマンドとスロークエリログを介してデバッグできます。 5)パフォーマンス最適化方法には、インデックスの合理的な使用、最適化されたクエリ、およびキャッシュの使用が含まれます。ベストプラクティスには、トランザクションと準備された星の使用が含まれます

SQLデータベースの構築には、DBMSの選択が必要です。 DBMSのインストール。データベースの作成。テーブルの作成;データの挿入;データの取得。データの更新。データの削除。ユーザーの管理。データベースのバックアップ。
