<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學習啦——學設計>網頁設計>網站建設>網站服務器管理>

        mysql分區都用什么方法_mysql分區有哪些方法

        時間: 宇民40 分享

          MySQL 可應用于多種語言,包括 PERL, C, C++, JAVA 和 PHP。大家知道mysql分區有哪些方法嗎?下面由學習啦小編為大家整理的mysql分區的方法,希望大家喜歡!

          mysql分區的方法

          一、概述

          當 MySQL的總記錄數超過了100萬后,會出現性能的大幅度下降嗎?答案是肯定的,但是,性能下降>的比率不一而同,要看系統的架構、應用程序、還有>包括索引、服務器硬件等多種因素而定。當有網友問我這個問題的時候,我最常見的回答>就是:分表,可以根據id區間或者時間先后順序等多種規則來分表。分表很容易,然而由此所帶來的應用程序甚至是架構方面的改動工作卻不>容小覷,還包括將來的擴展性等。

          在以前,一種解決方案就是使用 MERGE

          類型,這是一個非常方便的做飯。架構和程序基本上不用做改動,不過,它的缺點是顯見的:

          1.只能在相同結構的 MyISAM 表上使用

          2.無法享受到 MyISAM 的全部功能,例如無法在 MERGE 類型上執行 FULLTEXT 搜索

          3.它需要使用更多的文件描述符

          4.讀取索引更慢

          這個時候,MySQL 5.1 中新增的分區(Partition)功能的優勢也就很明顯了:

          1.與單個磁盤或文件系統分區相比,可以存儲更多的數據

          2.很容易就能刪除不用或者過時的數據

          3.一些查詢可以得到極大的優化

          4.涉及到 SUM()/COUNT() 等聚合函數時,可以并行進行

          5.IO吞吐量更大

          分區允許可以設置為任意大小的規則,跨文件系統分配單個表的多個部分。實際上,表的不同部分在不同的位置被存儲為單獨的表。

          分區應該注意的事項:

          1、 做分區時,要么不定義主鍵,要么把分區字段加入到主鍵中。

          2、 分區字段不能為NULL,要不然怎么確定分區范圍呢,所以盡量NOT NULL

          二、分區的類型

          1.RANGE 分區:基于屬于一個給定連續區間的列值,把多行分配給分區。

          2.LIST 分區:類似于按RANGE分區,區別在于LIST分區是基于列值匹配一個離散值集合中的某個值來進行選擇。

          2.HASH分區:基于用戶定義的表達式的返回值來進行選擇的分區,該表達式使用將要插入到表中的這些行的列值進行計算。這個函數可以包>含MySQL中有效的、產生非負整數值的任何表達式。

          3.KEY分區:類似于按HASH分區,區別在于KEY分區只支持計算一列或多列,且MySQL服務器提供其自身的哈希函數。必須有一列或多列包含>整數值。

          MySQL日志文件方法

          1.二進制日志

          二進制日志,也就是我們常說的 binlog,也是 MySQL Server 中最為重要的日志之一。

          當我們通過“—log-bin[=file_name]”打開了記錄的功能之后,MySQL 會將所有修改數據 庫數據的 query 以二進制形式記錄到日志文件中。 當然, 日志中并不僅限于query 語句這么 簡單, 還包括每一條query 所執行的時間, 所消耗的資源, 以及相關的事務信息,bi所nl以og 是事務安全的。

          和錯誤日志一樣,binlog 記錄功能同樣需要“—log-bin[=file_name]”參數的顯式指 定才能開啟, 如果未指定file_name, 則會在數據目錄下記錄為mysql-bin.** (*代表0~ 9 之間的某一個數字,來表示該日志的序號)。

          binlog 還有其他一些附加選項參數:

          “—max_binlog_size”設置 binlog 的最大存儲上限,當日志達到該上限時,MySQL 會 重新創建一個日志開始繼續記錄。不過偶爾也有超出該設置的binlog 產生,一般都是因為 在即將達到上限時,產生了一個較大的事務,為了保證事務安全,MySQL 不會將同一個事務 分開記錄到兩個 binlog 中。

          “—binlog-do-db=db_name”參數明確告訴 MySQL,需要對某個(db_name)數據庫記 錄 binlog,如果有了“—binlog-do-db=db_name”參數的顯式指定,MySQL 會忽略針對其他 數據庫執行的 query,而僅僅記錄針對指定數據庫執行的query。

          “—binlog-ignore-db=db_name”與“—binlog-do-db=db_name”完全相反, 它顯式指 定忽略某個(db_name)數據庫的binlog 記錄,當指定了這個參數之后,MySQL 會記錄指定 數據庫以外所有的數據庫的 binlog。

          “—binlog-ignore-db=db_name”與“—binlog-do-db=db_name”兩個參數有一個共同 的概念需要大家理解清楚,參數中的db_name 不是指 query 語句更新的數據所在的數據庫, 而是執行 query 的時候當前所處的數據庫。 不論更新哪個數據庫的數據,MySQL 僅僅比較當 前連接所處的數據庫(通過use db_name切換后所在的數據庫)與參數設置的數據庫名,而 不會分析 query 語句所更新數據所在的數據庫。

          mysql-bin.index 文件(binary log index)的功能是記錄所有Binary Log的絕對路 徑,保證 MySQL 各種線程能夠順利的根據它找到所有需要的Binary Log 文件。

          2.通用查詢日志

          查詢日志記錄 MySQL 中所有的 query,通過“—log[=fina_name]”來打開該功能。由

          于記錄了所有的 query,包括所有的 select,體積比較大,開啟后對性能也有較大的影響, 所以請大家慎用該功能。 一般只用于跟蹤某些特殊的sql 性能問題才會短暫打開該功能。默認的查詢日志文件名為 hostname.log。

          3.慢查詢日志

          顧名思義,慢查詢日志中記錄的是執行時間較長的 query,也就是我們常說的 slow

          query,通過設 —log-slow-queries[=file_name]來打開該功能并設置記錄位置和文件名, 默認文件名為 hostname-slow.log,默認目錄也是數據目錄。

          慢查詢日志采用的是簡單的文本格式, 可以通過各種文本編輯器查看其中的內容。中其 記錄了語句執行的時刻,執行所消耗的時間,執行用戶,連接主機等相關信息。MySQL 還提 供了專門用來分析滿查詢日志的工具程序mysqlslowdump, 用來幫助數據庫管理人員解決可 能存在的性能問題。

          4.Innodb的在線redo日志

          Innodb 是一個事務安全的存儲引擎, 其事務安全性主要就是通過在線redo 日志和記錄

          在表空間中的 undo 信息來保證的。redo 日志中記錄了 Innodb 所做的所有物理變更和事務 信息, 通過redo 日志和 undo 信息, Innodb 保證了在任何情況下的事務安全性。Innodb 的redo 日志同樣默認存放在數據目錄下, 可以通過innodb_log_group_home_dir來更改設置日志的 存放位置,通過 innodb_log_files_in_group 設置日志的數量。

          5.更新日志

          更新日志是 MySQL 在較老的版本上使用的,其功能和 binlog 基本類似,只不過不是以

          二進制格式來記錄而是以簡單的文本格式記錄內容。自從 MySQL增加了binlog功能之后, 就很少使用更新日志了。從版本5.0 開始,MySQL 已經不再支持更新日志了。

          導入導出MySQL數據庫的方法

          1. 概述

          MySQL數據庫的導入,有兩種方法:

          1) 先導出數據庫SQL腳本,再導入;

          2) 直接拷貝數據庫目錄和文件。

          在不同操作系統或MySQL版本情況下,直接拷貝文件的方法可能會有不兼容的情況發生。

          所以一般推薦用SQL腳本形式導入。下面分別介紹兩種方法。

          2. 方法一 SQL腳本形式

          操作步驟如下:

          2.1. 導出SQL腳本

          在原數據庫服務器上,可以用phpMyAdmin工具,或者mysqldump(mysqldump命令位于mysql/bin/目錄中)命令行,導出SQL腳本。

          2.1.1 用phpMyAdmin工具

          導出選項中,選擇導出“結構”和“數據”,不要添加“Drop DATABASE”和“Drop TABLE”選項。

          選中“另存為文件”選項,如果數據比較多,可以選中“gzipped”選項。

          將導出的SQL文件保存下來。

          2.1.2 用mysqldump命令行

          命令格式

          mysqldump -u用戶名 -p 數據庫名 > 數據庫名.sql

          范例:

          mysqldump -uroot -p abc > abc.sql

          (導出數據庫abc到abc.sql文件)

          提示輸入密碼時,輸入該數據庫用戶名的密碼。

          2.2. 創建空的數據庫

          通過主控界面/控制面板,創建一個數據庫。假設數據庫名為abc,數據庫全權用戶為abc_f。

          2.3. 將SQL腳本導入執行

          同樣是兩種方法,一種用phpMyAdmin(mysql數據庫管理)工具,或者mysql命令行。

          2.3.1 用phpMyAdmin工具

          從控制面板,選擇創建的空數據庫,點“管理”,進入管理工具頁面。

          3 方法二 直接拷貝

          如果數據庫比較大,可以考慮用直接拷貝的方法,但不同版本和操作系統之間可能不兼容,要慎用。

          3.1 準備原始文件

          用tar打包為一個文件

          3.2 創建空數據庫

          3.3 解壓

          在臨時目錄中解壓,如:

          cd /tmp

          tar zxf mydb.tar.gz

          3.4 拷貝

          將解壓后的數據庫文件拷貝到相關目錄

        mysql分區都用什么方法_mysql分區有哪些方法

        MySQL 可應用于多種語言,包括 PERL, C, C++, JAVA 和 PHP。大家知道mysql分區有哪些方法嗎?下面由學習啦小編為大家整理的mysql分區的方法,希望大家喜歡! mysql分區的方法 一、概述 當 MySQL的總記錄數超過了100萬后,會出現性能的大幅度下降嗎?答案是肯定
        推薦度:
        點擊下載文檔文檔為doc格式

        精選文章

        26881 主站蜘蛛池模板: 国产三级国产精品国产专区| 国产精品一二三中文字幕| 99精品国产在热久久婷婷| 无码人妻一区二区三区兔费| 国产成人免费| 久久综合偷拍视频五月天| 午夜福利偷拍国语对白| 毛片一级在线| 亚洲综合国产激情另类一区| 亚洲一区二区三区啪啪| 热久久这里只有精品国产| 日韩中文字幕精品人妻| 中文字幕乱码十国产乱码| 91精品国产午夜福利| 久久精品亚洲成在人线av麻豆| 色777狠狠狠综合| 红杏av在线dvd综合| 亚洲国产精品综合久久20| 国产普通话对白刺激| 久久精品免视看国产成人 | 日韩欧美国产另类| 91精品国产色综合久久| 四虎国产精品成人| 亚洲午夜福利在线观看| 尹人香蕉久久99天天拍| 精品免费看国产一区二区| 亚洲精品美女久久久久9999 | 亚洲 欧美 视频 手机在线| 国产欧美另类久久久精品不卡| 亚州中文字幕一区二区| 久久经精品久久精品免费观看| 中文日韩在线一区二区| 91pao强力打造免费高清| 中年国产丰满熟女乱子正在播放 | 国产va免费精品观看| 免费无码肉片在线观看| 国产成人剧情AV麻豆果冻| 国内不卡一区二区三区| 亚洲一区二区中文av| gogogo电影在线观看免费| 午夜精品福利一区二区三|