日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Mysql拐点_InnoDB select性能拐点测试

發布時間:2024/10/8 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mysql拐点_InnoDB select性能拐点测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

傳說InnoDB的數據量到了一定程度就會有一個很大的下滑。那么這個闕值究竟是是多少?來做一下測試吧!

1、調整my.cnf的參數如下:

innodb_file_per_table = 0

innodb_flush_log_at_trx_commit = 2

innodb_buffer_pool_size = 8G

innodb_file_io_threads = 4

重啟服務器,啟動mysqld

2、在test庫上建表:

CREATE TABLE `test` (

`ID` bigint(20) NOT NULL auto_increment,

`INT_A` int(11) default NULL,

`INT_B` int(11) default NULL,

`INT_C` int(11) default NULL,

`STRING_A` varchar(50) default NULL,

`STRING_B` varchar(250) default NULL,

`STRING_C` varchar(700) default NULL,

PRIMARY KEY (`ID`),

KEY `IDX_TEST_IA` (`INT_A`),

KEY `IDX_TEST_IB` (`INT_B`),

KEY `IDX_TEST_SA` (`STRING_A`,`INT_C`)

) ENGINE=InnoDB DEFAULT CHARSET=gbk

3、50個線程并發,各執行以下SQL 2萬次:

insert into test(INT_A, INT_B, INT_C, STRING_A, STRING_B, STRING_C) values(CEIL(RAND()*100000), CEIL(RAND()*100000), CEIL(RAND()*100000), random_string(CEIL(50*RAND())), random_string(CEIL(250*RAND())), random_string(CEIL(700*RAND())))

4、50個線程并發,各執行以下SQL 20萬次:

select count(test.INT_A) from test, (select CEIL(RAND()*100000) as rand_zyy) b where test.INT_A = b.rand_zyy

在此期間,每10秒記錄一次com_select的變化

5、如果test內的數據量小于3000萬,則跳轉至3;反之結束壓測。

結果得到了30張圖,在這里就不貼了??梢钥闯?#xff0c;每秒能夠執行的select量從12000(數據量100萬)緩步下降到7800(數據量3000萬)。這個性能下降主要是因為每次查詢可以得到的數據越來越多造成的,如果將SQL換成按主鍵索引,是否出現這種性能下降仍未可知。但是可以肯定的是,按照主鍵索引來查詢數據,即使出現性能下降也會比二級索引要更緩慢。

由于每條記錄都比較小,所以本次實驗的數據基本上全部在內存中。在3000萬數據的范圍內,未出現所謂的性能拐點。初步猜想,前人的實驗結果出現性能拐點,是因為內存耗盡,MySQL需要從磁盤上讀取數據引起的。而這種性能拐點與MySQL本身的實現機制無關。

覺得文章有用?立即:

和朋友一起 共學習 共進步!

猜您喜歡

總結

以上是生活随笔為你收集整理的Mysql拐点_InnoDB select性能拐点测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。