反驳"MySQL InnoDB (不行)的性能问题",千万_MySQL
在 JavaEye 上看到一篇对 MySQL FUD(Fear, uncertainty and doubt) 的文章
用MySQL InnoDB Benchmark 性能测试来说明
文中提到:"InnoDB 的磁盘性能很令人担心,MySQL 缺乏良好的 tablespace 真是天大的缺陷!……网上有用户反映存在同样的插入性能问题,百万行记录插入之后,插入速度下降到了 1/30,从开始的 1600行/秒衰退到 50行/秒……"
50行/秒这么慢我从来没见过,见也没人反驳,所以自己再专门验证一下。
Tim's 环境:
MySQL 5.0.26 x86_64
Linux x86_64
iddata 文件大小17G,未使用innodb_file_per_table分表选项
表1: 1000万行左右,表大小 2.2G,含主键有6个索引字段
表2: 3000万行左右,表大小 6.3G,含主键有6个索引字段
MySQL还有其他一些数据也在iddata中,但测试时候其他数据未访问。
MySQL Server Hardware 环境
双 XEON 3G
4G 内存, SCSI 硬盘
非专业非名牌,普通组装的服务器。
表结构就是一般的用户表,包含 int, varchar, datetime 字段类型,无 text,blob 类型字段。
单行长度 0.1K 左右
对表1测试2分钟插入操作,在1千万的表中每个调用插入1行,通过Java JDBC在另外一台测试机上调用。
服务器 CPU 30%
JDBC Result:
INSERT OK /ERR: 73824/0
Java HEAP: 7.12MB of 63.56 MB (11.2%) used
TIME elapse(sec): 129
AVG平均/CUR当前/MAX最大 Inserts/SEC: 572/620/620
再测试一个3000万的表,通过Java JDBC在另外一台测试机上调用。
可能上一个测试2分钟会让人觉得没有说服力,3000万的表二就测试久一点吧。测试了10多分钟,又插入了100万条新的数据
一个调用只插入1行,8个线程。使用了连接池。
测试结果速度非常稳定。
服务器 CPU 30%
OK /ERR: 1,006,907/0
HEAP: 6.57MB of 63.56 MB (10.3%) used
TIME elapse(sec): 1683
AVG/CUR/MAX Inserts/Sec: 598/586/647

ホット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のAlter Tableステートメントを使用して、列の追加/ドロップ、テーブル/列の名前の変更、列データ型の変更など、テーブルを変更することについて説明します。

記事では、証明書の生成と検証を含むMySQL用のSSL/TLS暗号化の構成について説明します。主な問題は、セルフ署名証明書のセキュリティへの影響を使用することです。[文字カウント:159]

記事では、MySQLで大規模なデータセットを処理するための戦略について説明します。これには、パーティション化、シャード、インデックス作成、クエリ最適化などがあります。

記事では、MySQLワークベンチやPHPMyAdminなどの人気のあるMySQL GUIツールについて説明し、初心者と上級ユーザーの機能と適合性を比較します。[159文字]

この記事では、ドロップテーブルステートメントを使用してMySQLのドロップテーブルについて説明し、予防策とリスクを強調しています。これは、バックアップなしでアクションが不可逆的であることを強調し、回復方法と潜在的な生産環境の危険を詳述しています。

記事では、外部キーを使用してデータベース内の関係を表すことで、ベストプラクティス、データの完全性、および避けるべき一般的な落とし穴に焦点を当てています。

この記事では、クエリパフォーマンスを強化するために、PostgreSQL、MySQL、MongoDBなどのさまざまなデータベースでJSON列にインデックスの作成について説明します。特定のJSONパスのインデックス作成の構文と利点を説明し、サポートされているデータベースシステムをリストします。

記事では、準備されたステートメント、入力検証、および強力なパスワードポリシーを使用して、SQLインジェクションおよびブルートフォース攻撃に対するMySQLの保護について説明します。(159文字)
