最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MYSQL性能優(yōu)化分享(分庫分表)

 更新時(shí)間:2012年02月27日 22:17:37   作者:  
MYSQL性能優(yōu)化之分庫分表與不停機(jī)修改mysql表結(jié)構(gòu),需要的朋友可以參考下
1、分庫分表

很明顯,一個(gè)主表(也就是很重要的表,例如用戶表)無限制的增長勢必嚴(yán)重影響性能,分庫與分表是一個(gè)很不錯(cuò)的解決途徑,也就是性能優(yōu)化途徑,現(xiàn)在的案例是我們有一個(gè)1000多萬條記錄的用戶表members,查詢起來非常之慢,同事的做法是將其散列到100個(gè)表中,分別從members0到members99,然后根據(jù)mid分發(fā)記錄到這些表中,牛逼的代碼大概是這樣子:
復(fù)制代碼 代碼如下:

<?php
for($i=0;$i< 100; $i++ ){
//echo "CREATE TABLE db2.members{$i} LIKE db1.members<br>";
echo "INSERT INTO members{$i} SELECT * FROM members WHERE mid%100={$i}<br>";
}
?>


2、不停機(jī)修改mysql表結(jié)構(gòu)

同樣還是members表,前期設(shè)計(jì)的表結(jié)構(gòu)不盡合理,隨著數(shù)據(jù)庫不斷運(yùn)行,其冗余數(shù)據(jù)也是增長巨大,同事使用了下面的方法來處理:

先創(chuàng)建一個(gè)臨時(shí)表:
/*創(chuàng)建臨時(shí)表*/
CREATE TABLE members_tmp LIKE members

然后修改members_tmp的表結(jié)構(gòu)為新結(jié)構(gòu),接著使用上面那個(gè)for循環(huán)來導(dǎo)出數(shù)據(jù),因?yàn)?000萬的數(shù)據(jù)一次性導(dǎo)出是不對的,mid是主鍵,一個(gè)區(qū)間一個(gè)區(qū)間的導(dǎo),基本是一次導(dǎo)出5萬條吧,這里略去了
接著重命名將新表替換上去:

/*這是個(gè)頗為經(jīng)典的語句哈*/
RENAME TABLE members TO members_bak,members_tmp TO members;

就是這樣,基本可以做到無損失,無需停機(jī)更新表結(jié)構(gòu),但實(shí)際上RENAME期間表是被鎖死的,所以選擇在線少的時(shí)候操作是一個(gè)技巧。經(jīng)過這個(gè)操作,使得原先8G多的表,一下子變成了2G多

另外還講到了mysql中float字段類型的時(shí)候出現(xiàn)的詭異現(xiàn)象,就是在pma中看到的數(shù)字根本不能作為條件來查詢.感謝zj同學(xué)的新鮮分享。

相關(guān)文章

  • MySQL如何新建用戶并授權(quán)

    MySQL如何新建用戶并授權(quán)

    本文主要介紹了如何在MySQL中創(chuàng)建新用戶并管理其權(quán)限,包括增刪改查、創(chuàng)建表、刪除表等操作,文中詳細(xì)說明了MySQL 5.7.18和MySQL 8.0版本中的權(quán)限配置,以及如何根據(jù)需要添加或刪除權(quán)限的步驟,旨在提供實(shí)用的數(shù)據(jù)庫管理技巧
    2024-10-10
  • mysql 8.0.12 安裝圖文教程

    mysql 8.0.12 安裝圖文教程

    這篇文章主要為大家詳細(xì)介紹了mysql 8.0.12 安裝配置圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • sql語句示例之case?when作為where條件

    sql語句示例之case?when作為where條件

    這篇文章主要給大家介紹了關(guān)于sql語句示例之case?when作為where條件的相關(guān)資料,在SQL語句中CASE WHEN子句是根據(jù)條件表達(dá)式的結(jié)果來執(zhí)行不同的邏輯操作,它使用在WHERE子句中,以根據(jù)特定的條件在查詢結(jié)果中過濾數(shù)據(jù),需要的朋友可以參考下
    2023-08-08
  • 分析MySQL復(fù)制以及調(diào)優(yōu)原理和方法

    分析MySQL復(fù)制以及調(diào)優(yōu)原理和方法

    本篇文章給大家詳細(xì)分析了MySQL復(fù)制以及調(diào)優(yōu)原理和方法,并通過代碼詳細(xì)分析了具體操作,有需要的朋友參考下吧。
    2018-01-01
  • MySQL數(shù)據(jù)庫的InnoDB和MyISAM存儲引擎的區(qū)別及說明

    MySQL數(shù)據(jù)庫的InnoDB和MyISAM存儲引擎的區(qū)別及說明

    InnoDB是MySQL的默認(rèn)存儲引擎,它支持事務(wù)、外鍵和行級鎖定,具有更好的并發(fā)控制性能和崩潰恢復(fù)能力,而MyISAM不支持事務(wù)和外鍵,使用表級鎖定,適合讀操作頻繁的場景
    2024-12-12
  • 使用MySQL從JSON字符串提取數(shù)據(jù)的方法詳解

    使用MySQL從JSON字符串提取數(shù)據(jù)的方法詳解

    在現(xiàn)代數(shù)據(jù)庫管理中,JSON 格式因其靈活性而廣泛使用,然而,當(dāng)數(shù)據(jù)存儲在 JSON 中時(shí),我們經(jīng)常需要將其轉(zhuǎn)換為更易于處理的格式,本篇文章將通過一個(gè)具體的 SQL 查詢示例,展示如何從存儲在 MySQL 中的 JSON 字符串提取數(shù)據(jù)并重新格式化,需要的朋友可以參考下
    2024-10-10
  • MySQL之常用的MySQL優(yōu)化工具解讀

    MySQL之常用的MySQL優(yōu)化工具解讀

    這篇文章主要介紹了MySQL之常用的MySQL優(yōu)化工具,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • MySQL InnoDB之事務(wù)與鎖詳解

    MySQL InnoDB之事務(wù)與鎖詳解

    MySQL InnoDB之事務(wù)與鎖詳解,需要使用事務(wù)的朋友可以參考下
    2012-04-04
  • MySQL中UNION語句用法詳解與示例

    MySQL中UNION語句用法詳解與示例

    這篇文章主要給大家介紹了關(guān)于MySQL中UNION語句用法的相關(guān)資料,實(shí)際業(yè)務(wù)中有時(shí)候需要把滿足多種獨(dú)立條件的結(jié)果集整合到一起,就可以使用UNOIN聯(lián)合查詢,需要的朋友可以參考下
    2023-08-08
  • MySQL 消除重復(fù)行的一些方法

    MySQL 消除重復(fù)行的一些方法

    這篇文章主要介紹了MySQL 消除重復(fù)行的一些方法,需要的朋友可以參考下
    2017-05-05

最新評論

天门市| 安乡县| 卢氏县| 五华县| 泽普县| 伊春市| 濮阳市| 砚山县| 玉屏| 江西省| 西充县| 遂宁市| 蒲城县| 观塘区| 前郭尔| 安福县| 安国市| 长岭县| 西昌市| 绥宁县| 榆社县| 本溪| 小金县| 高唐县| 伊金霍洛旗| 汝城县| 延吉市| 楚雄市| 镇赉县| 西平县| 汉川市| 区。| 建始县| 泌阳县| 古田县| 九江市| 兴义市| 隆昌县| 彭山县| 南宁市| 水城县|