濮阳杆衣贸易有限公司

主頁 > 知識庫 > 詳解mysql持久化統(tǒng)計(jì)信息

詳解mysql持久化統(tǒng)計(jì)信息

熱門標(biāo)簽:房產(chǎn)智能外呼系統(tǒng)品牌 常州電銷外呼系統(tǒng)一般多少錢 沃克斯電梯外呼線路圖 天智外呼系統(tǒng) 北京人工外呼系統(tǒng)價錢 地圖標(biāo)注被騙三百怎么辦 云南語音外呼系統(tǒng)平臺 400電話鄭州申請 福州呼叫中心外呼系統(tǒng)哪家好

一、持久化統(tǒng)計(jì)信息的意義:

  統(tǒng)計(jì)信息用于指導(dǎo)mysql生成執(zhí)行計(jì)劃,執(zhí)行計(jì)劃的準(zhǔn)確與否直接影響到SQL的執(zhí)行效率;如果mysql一重啟

  之前的統(tǒng)計(jì)信息就沒有了,那么當(dāng)SQL語句來臨時,那么mysql就要收集統(tǒng)計(jì)信息然后再生成SQL語句的執(zhí)行

  計(jì)劃。如果能在關(guān)閉mysql的時候就把統(tǒng)計(jì)信息保存起來,那么在啟動時就不要再收集一次了,這種處理方式

  有助于效率的提升。

二、統(tǒng)計(jì)信息準(zhǔn)確與否也同樣重要:

  第一目中我們說明了“持久化統(tǒng)計(jì)信息的意義”,我們的假設(shè)統(tǒng)計(jì)信息是有用的,是準(zhǔn)確的;如果統(tǒng)計(jì)信息本身

  已經(jīng)過時了,比如說統(tǒng)計(jì)信息是在表中只有100行時統(tǒng)計(jì)出來的,這種情況下往往走全表掃描開銷會更小,但是

  呢! 現(xiàn)在表中的行數(shù)已經(jīng)達(dá)到了100萬行,明顯這種過時的統(tǒng)計(jì)信息會引發(fā)性能災(zāi)難,所以統(tǒng)計(jì)信息的時效性也

  是同樣重要的。那mysql它什么時候自動更新統(tǒng)計(jì)信息呢?默認(rèn)情況下當(dāng)表中的數(shù)據(jù)有10%被修改過的就會更新。 

三、mysql對統(tǒng)計(jì)信息的處理:

  針對上面的兩個問題mysql都有給出解決方案,并且都可能通過簡單的配置來解決

  1、針對是否持久化統(tǒng)計(jì)信息mysql可以通過innodb_stats_persistent參數(shù)來控制

  2、針對統(tǒng)計(jì)信息的時效性,mysql通過innodb_stats_auto_recalc參數(shù)來控制是否自動更新

  3、針對統(tǒng)計(jì)信息的準(zhǔn)確性,mysql通過innodb_stats_persistent_sample_pages 參數(shù)來控制更新

  統(tǒng)計(jì)信息時的采樣,樣本頁面的數(shù)量。

四、手動更新統(tǒng)計(jì)信息的方式:

  mysql通過analyze table 語句來手動的更新統(tǒng)計(jì)信息 

五、查看表的統(tǒng)計(jì)信息是什么時候更新的:

  mysql把統(tǒng)計(jì)信息相關(guān)的內(nèi)容記錄在mysql.innodb_table_stats ,mysql.innodb_index_stats 這兩張表里面。

  mysql.innodb_table_stats以表為單位記錄著統(tǒng)計(jì)信息

mysql> select * from innodb_table_stats;
+---------------+----------------------------+---------------------+--------+----------------------+--------------------------+
| database_name | table_name         | last_update     | n_rows | clustered_index_size | sum_of_other_index_sizes |
+---------------+----------------------------+---------------------+--------+----------------------+--------------------------+
| fdb      | auth_group         | 2017-08-10 14:36:40 |   0 |          1 |            1 |
| fdb      | auth_group_permissions   | 2017-08-10 14:36:41 |   0 |          1 |            2 |
| fdb      | auth_permission      | 2017-08-10 14:36:41 |   30 |          1 |            1 |
| fdb      | auth_user         | 2017-08-10 14:36:41 |   0 |          1 |            1 |
| fdb      | auth_user_groups      | 2017-08-10 14:36:41 |   0 |          1 |            2 |
| fdb      | auth_user_user_permissions | 2017-08-10 14:36:41 |   0 |          1 |            2 |
| fdb      | cninfo_company       | 2017-08-10 14:36:58 |  4996 |         161 |            6 |
| fdb      | csindex_indexdetail    | 2017-09-17 14:04:27 |   0 |          1 |            0 |
| fdb      | csindex_indexoverview   | 2017-09-01 12:44:18 |   11 |          1 |            0 |
| fdb      | django_admin_log      | 2017-08-10 14:36:47 |   0 |          1 |            2 |
| fdb      | django_content_type    | 2017-08-10 14:36:47 |   10 |          1 |            1 |
| fdb      | django_migrations     | 2017-09-04 14:04:09 |   37 |          1 |            0 |
| fdb      | django_session       | 2017-08-10 14:36:47 |   0 |          1 |            1 |
| fdb      | glod_glodprice       | 2017-08-10 14:36:48 |  2271 |          10 |            0 |
| fdb      | pbc_moneysupply      | 2017-08-10 14:37:08 |   78 |          1 |            0 |
| fdb      | shibor_shiborrate     | 2017-08-10 14:37:18 |  2711 |          14 |            0 |
| fdb      | sse_marketoverview     | 2017-08-15 16:06:12 |   0 |          1 |            0 |
| mysql     | gtid_executed       | 2017-09-06 11:02:14 |   2 |          1 |            0 |
| sys      | sys_config         | 2017-08-10 12:19:06 |   6 |          1 |            0 |
| tempdb    | person           | 2017-09-14 11:18:15 |   1 |          1 |            0 |
| tmp      | t             | 2017-08-15 11:06:18 |   2 |          1 |            0 |
+---------------+----------------------------+---------------------+--------+----------------------+--------------------------+
21 rows in set (0.00 sec)

  各個列所代表的意義:

  database_name        表所在的庫名

  table_name          表名

  last_update          最近一次的更新時間

  n_rows            表中的行數(shù)

  clustered_index_size       主鍵的大小

  sum_of_other_index_sizes   所有二級索引的大小

 六、一些在analyze table 過程中的經(jīng)驗(yàn):

  如果我們用explan 語句查看SQL的執(zhí)行計(jì)劃的時候發(fā)現(xiàn),計(jì)劃走的不準(zhǔn),多半是由于統(tǒng)計(jì)信息過時引起的,這個

  時候就要執(zhí)行一下analyze table 來重新生成一下執(zhí)行計(jì)劃了;有時候可能發(fā)現(xiàn)重新生成執(zhí)行計(jì)劃后并沒有什么用

  SQL還是走的不準(zhǔn),這個時候最可能的原因就是生成執(zhí)行計(jì)劃時的采樣頁的數(shù)量太低了,innodb_stats_persistent_sample_pages

  這個參數(shù)的值,注意這個值也不要加的太大,要不然會老半天都執(zhí)行不完analyze table 語句。  

七、附加說明:

  上文中說的mysql實(shí)際上指的只是Innodb這個引擎

以上就是詳解mysql持久化統(tǒng)計(jì)信息的詳細(xì)內(nèi)容,更多關(guān)于mysql持久化統(tǒng)計(jì)信息的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • gearman + mysql方式實(shí)現(xiàn)持久化操作示例
  • 詳解使用Docker部署MySQL(數(shù)據(jù)持久化)
  • Java emoji持久化mysql過程詳解
  • MySQL8新特性:持久化全局變量的修改方法
  • MySQL8新特性:自增主鍵的持久化詳解
  • MySQL 8.0統(tǒng)計(jì)信息不準(zhǔn)確的原因
  • 概述MySQL統(tǒng)計(jì)信息

標(biāo)簽:黔東 沈陽 拉薩 鹽城 徐州 沈陽 珠海 移動

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《詳解mysql持久化統(tǒng)計(jì)信息》,本文關(guān)鍵詞  詳解,mysql,持久化,統(tǒng)計(jì),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解mysql持久化統(tǒng)計(jì)信息》相關(guān)的同類信息!
  • 本頁收集關(guān)于詳解mysql持久化統(tǒng)計(jì)信息的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    册亨县| 东宁县| 木里| 福清市| 江安县| 彭阳县| 松江区| 永城市| 黄山市| 汨罗市| 呼和浩特市| 大兴区| 衡水市| 会同县| 桑植县| 荔波县| 舞阳县| 衡阳县| 阿勒泰市| 巨野县| 华亭县| 青河县| 寻甸| 锦州市| 吉林省| 巴东县| 中牟县| 嘉禾县| 聊城市| 南丰县| 蚌埠市| 家居| 宝鸡市| 阳泉市| 罗甸县| 夏邑县| 绥化市| 民乐县| 河间市| 鄂州市| 德昌县|