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

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

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

很明顯,一個(gè)主表(也就是很重要的表,例如用戶表)無(wú)限制的增長(zhǎng)勢(shì)必嚴(yán)重影響性能,分庫(kù)與分表是一個(gè)很不錯(cuò)的解決途徑,也就是性能優(yōu)化途徑,現(xiàn)在的案例是我們有一個(gè)1000多萬(wàn)條記錄的用戶表members,查詢起來(lái)非常之慢,同事的做法是將其散列到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ù)庫(kù)不斷運(yùn)行,其冗余數(shù)據(jù)也是增長(zhǎng)巨大,同事使用了下面的方法來(lái)處理:

先創(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)來(lái)導(dǎo)出數(shù)據(jù),因?yàn)?000萬(wàn)的數(shù)據(jù)一次性導(dǎo)出是不對(duì)的,mid是主鍵,一個(gè)區(qū)間一個(gè)區(qū)間的導(dǎo),基本是一次導(dǎo)出5萬(wàn)條吧,這里略去了
接著重命名將新表替換上去:

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

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

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

相關(guān)文章

  • 詳談mysql order by in 的字符順序(推薦)

    詳談mysql order by in 的字符順序(推薦)

    下面小編就為大家?guī)?lái)一篇詳談mysql order by in 的字符順序(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04
  • 登錄MySQL數(shù)據(jù)庫(kù)最快幾步(圖文步驟詳解)

    登錄MySQL數(shù)據(jù)庫(kù)最快幾步(圖文步驟詳解)

    當(dāng)?MySQL?服務(wù)開(kāi)啟后,就可以通過(guò)客戶端來(lái)登錄?MySQL?數(shù)據(jù)庫(kù)了。在?Windows?操作系統(tǒng)下可以使用?DOS?命令登錄數(shù)據(jù)庫(kù),本節(jié)將介紹使用命令方式登錄?MySQL?數(shù)據(jù)庫(kù)的方法
    2023-10-10
  • mysql 重要日志文件匯總

    mysql 重要日志文件匯總

    這篇文章主要介紹了mysql 重要日志文件的匯總,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2020-11-11
  • MySQL 4種常用的主從復(fù)制架構(gòu)

    MySQL 4種常用的主從復(fù)制架構(gòu)

    這篇文章主要介紹了MySQL 4種常用的主從復(fù)制架構(gòu),幫助大家更好的理解和學(xué)習(xí)MySQL,感興趣的朋友可以了解下
    2020-08-08
  • MySQL日期及時(shí)間字段的查詢

    MySQL日期及時(shí)間字段的查詢

    這篇文章主要介紹了MySQL日期及時(shí)間字段的查詢,一分享日期及時(shí)間字段的規(guī)范化查詢方法為主展開(kāi)詳細(xì)內(nèi)容,需要的小伙伴可以參考一下
    2022-05-05
  • mysql 5.7.14 安裝配置代碼分享

    mysql 5.7.14 安裝配置代碼分享

    這篇文章主要為大家分享了CentOS 6.6下mysql 5.7.13winx64安裝配置方法圖文教程,感興趣的朋友可以參考一下
    2016-09-09
  • MySQL中關(guān)于datetime、date、time、str之間的轉(zhuǎn)化與比較

    MySQL中關(guān)于datetime、date、time、str之間的轉(zhuǎn)化與比較

    這篇文章主要介紹了MySQL中關(guān)于datetime、date、time、str之間的轉(zhuǎn)化與比較,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • MySQL子查詢的空值問(wèn)題解決

    MySQL子查詢的空值問(wèn)題解決

    本文主要介紹了MySQL子查詢的空值問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • mysql5.6安裝配置方法圖文教程

    mysql5.6安裝配置方法圖文教程

    這篇文章主要為大家分享了mysql5.6安裝配置方法圖文教程,感興趣的朋友可以參考一下
    2016-06-06
  • SQL實(shí)現(xiàn)數(shù)據(jù)過(guò)濾流程詳解

    SQL實(shí)現(xiàn)數(shù)據(jù)過(guò)濾流程詳解

    這篇文章主要介紹了SQL實(shí)現(xiàn)數(shù)據(jù)過(guò)濾流程,當(dāng)我們?cè)赟QL中查詢數(shù)據(jù)時(shí),肯定是有一些數(shù)據(jù)是我們不需要的,所以我們此時(shí)就要對(duì)數(shù)據(jù)進(jìn)行過(guò)濾,以篩選出我們僅需要的數(shù)據(jù)
    2023-01-01

最新評(píng)論