亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2020年12月01日 11:31:21   作者:蔣樂興的技術隨筆  
這篇文章主要介紹了mysql持久化統(tǒng)計信息的相關資料,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下

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

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

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

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

  有助于效率的提升。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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)驗:

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

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

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

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

七、附加說明:

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

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

相關文章

  • MySQL COUNT(*)性能原理詳解

    MySQL COUNT(*)性能原理詳解

    這篇文章主要介紹了MySQL COUNT(*)性能原理詳解,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • mysql數(shù)據(jù)NULL避坑指南分享

    mysql數(shù)據(jù)NULL避坑指南分享

    這篇文章主要介紹了mysql數(shù)據(jù)NULL避坑指南,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • mysql 常用數(shù)據(jù)庫語句 小練習

    mysql 常用數(shù)據(jù)庫語句 小練習

    一個mysql小練習 建表 查詢 修改表 增加字段 刪除字段
    2009-07-07
  • MySQL中表分區(qū)技術詳細解析

    MySQL中表分區(qū)技術詳細解析

    數(shù)據(jù)庫分區(qū)是一種物理數(shù)據(jù)庫設計技術。雖然分區(qū)技術可以實現(xiàn)很多效果,但其主要目的是為了在特定的SQL操作中減少數(shù)據(jù)讀寫的總量以縮減sql語句的響應時間,同時對于應用來說分區(qū)完全是透明的。
    2016-06-06
  • 關于MySQL索引的深入解析

    關于MySQL索引的深入解析

    這篇文章主要給大家介紹了關于MySQL索引的深入解析,文中通過示例代碼介紹的非常詳細,對大家學習或者使用MySQL具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-11-11
  • MySQL多表查詢實例詳解【鏈接查詢、子查詢等】

    MySQL多表查詢實例詳解【鏈接查詢、子查詢等】

    這篇文章主要介紹了MySQL多表查詢,結(jié)合實例形式詳細分析了mysql多表查詢中的鏈接查詢、子查詢等相關操作技巧與使用注意事項,需要的朋友可以參考下
    2019-12-12
  • mysql存儲emoji表情報錯的處理方法【更改編碼為utf8mb4】

    mysql存儲emoji表情報錯的處理方法【更改編碼為utf8mb4】

    這篇文章主要介紹了mysql存儲emoji表情報錯的處理方法,較為詳細的分析了通過更改mysql編碼為utf8mb4解決存儲emoji表情報錯的相關操作技巧,需要的朋友可以參考下
    2018-07-07
  • MySQL優(yōu)化insert性能的方法示例

    MySQL優(yōu)化insert性能的方法示例

    對于一些數(shù)據(jù)量較大的系統(tǒng),數(shù)據(jù)庫面臨的問題除了查詢效率低下,還有就是數(shù)據(jù)入庫時間長。下面這篇文章主要給大家介紹了關于MySQL優(yōu)化insert性能的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2018-06-06
  • MySQL中NULLIF?、IFNULL、IF的用法和區(qū)別舉例詳解

    MySQL中NULLIF?、IFNULL、IF的用法和區(qū)別舉例詳解

    這篇文章主要給大家介紹了關于MySQL中NULLIF?、IFNULL、IF的用法和區(qū)別的相關資料,nullif和ifnull都是MySQL中用于處理NULL值的函數(shù),但它們的用法和作用略有不同,下面給大家詳細介紹下,需要的朋友可以參考下
    2024-05-05
  • 一文帶你學會MySQL的select語句

    一文帶你學會MySQL的select語句

    在MySQL中可以使用SELECT語句來查詢數(shù)據(jù),查詢數(shù)據(jù)是指從數(shù)據(jù)庫中根據(jù)需求,使用不同的查詢方式來獲取不同的數(shù)據(jù),是使用頻率最高、最重要的操作,下面這篇文章主要給大家介紹了關于MySQL中select語句的相關資料,需要的朋友可以參考下
    2022-11-11

最新評論