• <output id="aynwq"><form id="aynwq"><code id="aynwq"></code></form></output>

    <mark id="aynwq"><option id="aynwq"></option></mark>
  • <mark id="aynwq"><option id="aynwq"></option></mark><label id="aynwq"><dl id="aynwq"></dl></label>
  • 學(xué)習(xí)啦——學(xué)設(shè)計>網(wǎng)頁設(shè)計>網(wǎng)站建設(shè)>網(wǎng)站服務(wù)器管理>

    mysql分區(qū)都用什么方法_mysql分區(qū)有哪些方法

    時間: 宇民40 分享

      MySQL 可應(yīng)用于多種語言,包括 PERL, C, C++, JAVA 和 PHP。大家知道m(xù)ysql分區(qū)有哪些方法嗎?下面由學(xué)習(xí)啦小編為大家整理的mysql分區(qū)的方法,希望大家喜歡!

      mysql分區(qū)的方法

      一、概述

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

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

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

      1.只能在相同結(jié)構(gòu)的 MyISAM 表上使用

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

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

      4.讀取索引更慢

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

      1.與單個磁盤或文件系統(tǒng)分區(qū)相比,可以存儲更多的數(shù)據(jù)

      2.很容易就能刪除不用或者過時的數(shù)據(jù)

      3.一些查詢可以得到極大的優(yōu)化

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

      5.IO吞吐量更大

      分區(qū)允許可以設(shè)置為任意大小的規(guī)則,跨文件系統(tǒng)分配單個表的多個部分。實際上,表的不同部分在不同的位置被存儲為單獨的表。

      分區(qū)應(yīng)該注意的事項:

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

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

      二、分區(qū)的類型

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

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

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

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

      MySQL日志文件方法

      1.二進制日志

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

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

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

      binlog 還有其他一些附加選項參數(shù):

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

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

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

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

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

      2.通用查詢?nèi)罩?/p>

      查詢?nèi)罩居涗?MySQL 中所有的 query,通過“—log[=fina_name]”來打開該功能。由

      于記錄了所有的 query,包括所有的 select,體積比較大,開啟后對性能也有較大的影響, 所以請大家慎用該功能。 一般只用于跟蹤某些特殊的sql 性能問題才會短暫打開該功能。默認的查詢?nèi)罩疚募麨?hostname.log。

      3.慢查詢?nèi)罩?/p>

      顧名思義,慢查詢?nèi)罩局杏涗浀氖菆?zhí)行時間較長的 query,也就是我們常說的 slow

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

      慢查詢?nèi)罩静捎玫氖呛唵蔚奈谋靖袷? 可以通過各種文本編輯器查看其中的內(nèi)容。中其 記錄了語句執(zhí)行的時刻,執(zhí)行所消耗的時間,執(zhí)行用戶,連接主機等相關(guān)信息。MySQL 還提 供了專門用來分析滿查詢?nèi)罩镜墓ぞ叱绦騧ysqlslowdump, 用來幫助數(shù)據(jù)庫管理人員解決可 能存在的性能問題。

      4.Innodb的在線redo日志

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

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

      5.更新日志

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

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

      導(dǎo)入導(dǎo)出MySQL數(shù)據(jù)庫的方法

      1. 概述

      MySQL數(shù)據(jù)庫的導(dǎo)入,有兩種方法:

      1) 先導(dǎo)出數(shù)據(jù)庫SQL腳本,再導(dǎo)入;

      2) 直接拷貝數(shù)據(jù)庫目錄和文件。

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

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

      2. 方法一 SQL腳本形式

      操作步驟如下:

      2.1. 導(dǎo)出SQL腳本

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

      2.1.1 用phpMyAdmin工具

      導(dǎo)出選項中,選擇導(dǎo)出“結(jié)構(gòu)”和“數(shù)據(jù)”,不要添加“Drop DATABASE”和“Drop TABLE”選項。

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

      將導(dǎo)出的SQL文件保存下來。

      2.1.2 用mysqldump命令行

      命令格式

      mysqldump -u用戶名 -p 數(shù)據(jù)庫名 > 數(shù)據(jù)庫名.sql

      范例:

      mysqldump -uroot -p abc > abc.sql

      (導(dǎo)出數(shù)據(jù)庫abc到abc.sql文件)

      提示輸入密碼時,輸入該數(shù)據(jù)庫用戶名的密碼。

      2.2. 創(chuàng)建空的數(shù)據(jù)庫

      通過主控界面/控制面板,創(chuàng)建一個數(shù)據(jù)庫。假設(shè)數(shù)據(jù)庫名為abc,數(shù)據(jù)庫全權(quán)用戶為abc_f。

      2.3. 將SQL腳本導(dǎo)入執(zhí)行

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

      2.3.1 用phpMyAdmin工具

      從控制面板,選擇創(chuàng)建的空數(shù)據(jù)庫,點“管理”,進入管理工具頁面。

      3 方法二 直接拷貝

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

      3.1 準(zhǔn)備原始文件

      用tar打包為一個文件

      3.2 創(chuàng)建空數(shù)據(jù)庫

      3.3 解壓

      在臨時目錄中解壓,如:

      cd /tmp

      tar zxf mydb.tar.gz

      3.4 拷貝

      將解壓后的數(shù)據(jù)庫文件拷貝到相關(guān)目錄

    mysql分區(qū)都用什么方法_mysql分區(qū)有哪些方法

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

    精選文章

    26881 主站蜘蛛池模板: 一本一道av无码中文字幕| 免费人成在线观看69式小视频| 久久精品夜色国产亚洲av| 亚洲精品aaa| 欧美一级久久久久久久大| 国产精品国产自线拍免费软件| 亚洲精品伊人久久久久| 99热精品久久只有精品| 猛男猛女嘿咻视频网站| 大胸妈妈的朋友| 亚洲熟妇AV乱码在线观看| 97人妻无码一区二区精品免费| 欧美综合区自拍亚洲综合图区| 国产麻传媒精品国产AV| 天天综合亚洲色在线精品| 免费无遮挡无码永久视频| jizz视频在线观看| 波多野结衣系列cesd819| 国产美女牲交视频| 亚洲国产av无码专区亚洲av| 在线观看91精品国产入口| 李丽珍蜜桃成熟时电影3在线观看 李丽珍蜜桃成熟时电影在线播放观看 | 88av在线播放| 欧美人与物另类| 国产日韩一区二区三区在线观看| 俄罗斯激情女同互慰在线| 99精品视频在线观看免费| 欧美电影《轻佻寡妇》| 国产精品久久国产精麻豆99网站| 亚洲avav天堂av在线网爱情| 韩国男女无遮挡高清性视频| 日韩AV无码精品一二三区| 国产aⅴ激情无码久久久无码| 不用付费的黄色软件| 狠狠色综合网站久久久久久久高清| 在线观免费看高清影视剧| 亚洲国产精品网站久久| 麻豆映画传媒有限公司地址| 无主之花2025韩语中字| 免费看又黄又无码的网站| 91精品国产91久久久久青草|