欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

總結(jié)MySQL建表、查詢優(yōu)化的一些實(shí)用小技巧

 更新時(shí)間:2013年07月01日 12:20:45   作者:  
本篇文章是對(duì)MySQL建表以及查詢優(yōu)化的一些實(shí)用小技巧進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下

MySQL建表階段是非常重要的一個(gè)環(huán)節(jié),表結(jié)構(gòu)的好壞、優(yōu)劣直接影響著后續(xù)的管理維護(hù),趕在明天上班前分享總結(jié)個(gè)人MySQL建表、MySQL查詢優(yōu)化積累的一些實(shí)用小技巧。

技巧一、數(shù)據(jù)表冗余記錄添加時(shí)間與更新時(shí)間
我們用到的很多數(shù)據(jù)表大多情況下都會(huì)有表記錄的“添加時(shí)間(add_time)”,我建議大家再新增一個(gè)記錄“更新時(shí)間(update_time)”字段,在我的工作里需要為市場(chǎng)部、運(yùn)營(yíng)部等建立各種報(bào)表,而很多報(bào)表里的數(shù)據(jù)都是需要到大記錄表里去查詢的,如果直接查詢大表的話,查詢速度相當(dāng)慢。那么,我們的解決辦法就是建立各種數(shù)據(jù)快照,數(shù)據(jù)快照都是通過(guò)腳本定時(shí)跑的。假如,哪一天原始數(shù)據(jù)表出現(xiàn)了問(wèn)題,那么快照數(shù)據(jù)也會(huì)有問(wèn)題,這個(gè)時(shí)候我們的快照腳本就得重新跑一份修復(fù)好了的數(shù)據(jù),這樣有了update_time更新時(shí)間這個(gè)字段,我們就能很快定位記錄更新的時(shí)間。

技巧二、不要拋棄insert ignore into與replace into
大家肯定寫(xiě)過(guò)一些腳本循環(huán)將記錄插入到數(shù)據(jù)表,例如使用PHP腳本。如果期間的一條SQL插入失敗,那么后續(xù)的插入將終止,你可以在腳本里繞過(guò)這個(gè)插入錯(cuò)誤,一個(gè)好的辦法是使用ignore關(guān)鍵字來(lái)屏蔽插入錯(cuò)誤。如果,你的數(shù)據(jù)表里已經(jīng)存在有將要插入的相同記錄,那么這個(gè)時(shí)候就會(huì)產(chǎn)生插入報(bào)錯(cuò),使用 insert ignore into將繞開(kāi)這個(gè)錯(cuò)誤,繼續(xù)下一條記錄的插入。

如果你的表結(jié)構(gòu)設(shè)計(jì)了唯一索引的話,那么使用replace into來(lái)更新你的數(shù)據(jù)表記錄再好不過(guò)了,尤其是你在寫(xiě)一個(gè)腳本的時(shí)候,你就不需要在腳本里先查詢數(shù)據(jù)表是否存在該條記錄,如果存在,則更新;如果不存在則插入。你可以直接使用replace into,它會(huì)自動(dòng)到數(shù)據(jù)表檢測(cè),如果在唯一索引字段存在該值,則會(huì)先刪除該條記錄,然后再插入新記錄;如果唯一索引字段不存在該值,則直接插入數(shù)據(jù)表,簡(jiǎn)單且非常實(shí)用。

技巧三、給你的表建立唯一索引
很多情況下建立表唯一索引,能給我們省下很多麻煩事,想上面說(shuō)的replace into就必須是有唯一索引,當(dāng)然,很多人喜歡用到的自增主鍵ID盡管也是唯一索引,我建議是能在其他經(jīng)常出現(xiàn)在where條件屁股后面的字段,并且值是唯一的話可以加個(gè)索引甚至唯一索引,查詢速度將會(huì)提高很多。

說(shuō)在最后:當(dāng)然,insert ignore into與replace into大家要根據(jù)自己的需求來(lái)確定,不一定就適合你現(xiàn)在的需求;我只是提示大家還有這么些個(gè)實(shí)用的小知識(shí)大家可以靈活運(yùn)用到項(xiàng)目里邊。

相關(guān)文章

  • mysql提示Can't?connect?to?MySQL?server?on?localhost?(10061)完美解決方法

    mysql提示Can't?connect?to?MySQL?server?on?localhost

    這篇文章主要介紹了Can't?connect?to?MySQL?server?on?localhost?(10061)解決方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • MySQL如何從不固定位置提取字符串元素詳解

    MySQL如何從不固定位置提取字符串元素詳解

    這篇文章主要給大家介紹了關(guān)于MySQL如何從不固定位置提取字符串元素的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Mysql?InnoDB?的內(nèi)存結(jié)構(gòu)詳情

    Mysql?InnoDB?的內(nèi)存結(jié)構(gòu)詳情

    這篇文章主要介紹了Mysql InnoDB的內(nèi)存結(jié)構(gòu)詳情,InnoDB存儲(chǔ)引擎的邏輯存儲(chǔ)結(jié)構(gòu)是什么呢,下面我們就一起進(jìn)入文章了解更多詳細(xì)內(nèi)容吧,感興趣的小伙伴可以參考一下
    2022-05-05
  • MySql 5.7.20安裝及data和my.ini文件的配置

    MySql 5.7.20安裝及data和my.ini文件的配置

    本文通過(guò)圖文并茂的形式給大家介紹了MySql 5.7.20安裝及data和my.ini文件的配置方法,本文給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2017-11-11
  • MySQL恢復(fù)誤刪數(shù)據(jù)圖文教程

    MySQL恢復(fù)誤刪數(shù)據(jù)圖文教程

    MySQL誤刪數(shù)據(jù)庫(kù)造成了數(shù)據(jù)的丟失,這是非常尷尬的,下面這篇文章主要給大家介紹了關(guān)于MySQL恢復(fù)誤刪數(shù)據(jù)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • 找到一種不錯(cuò)的從SQLServer轉(zhuǎn)成Mysql數(shù)據(jù)庫(kù)的方法

    找到一種不錯(cuò)的從SQLServer轉(zhuǎn)成Mysql數(shù)據(jù)庫(kù)的方法

    找到一種不錯(cuò)的從SQLServer轉(zhuǎn)成Mysql數(shù)據(jù)庫(kù)的方法...
    2007-07-07
  • MySQL如何利用DCL管理用戶和控制權(quán)限

    MySQL如何利用DCL管理用戶和控制權(quán)限

    這篇文章主要介紹了MySQL如何利用DCL管理用戶和控制權(quán)限,幫助大家更好的理解和學(xué)習(xí)MySQL的使用,感興趣的朋友可以了解下
    2020-11-11
  • MYSQL的select 學(xué)習(xí)筆記

    MYSQL的select 學(xué)習(xí)筆記

    MYSQL的select 學(xué)習(xí)筆記...
    2007-02-02
  • MySQL中隨機(jī)生成固定長(zhǎng)度字符串的方法

    MySQL中隨機(jī)生成固定長(zhǎng)度字符串的方法

    在MySQL中有時(shí)需要隨機(jī)生成數(shù)字或字符串,隨機(jī)生產(chǎn)數(shù)字可直接使用rand()函數(shù),但是要隨機(jī)生成字符串就比較麻煩。
    2010-12-12
  • MySQL DELETE語(yǔ)法使用詳細(xì)解析

    MySQL DELETE語(yǔ)法使用詳細(xì)解析

    此文章主要講述的是MySQL DELETE語(yǔ)法的詳細(xì)解析,以及一些在實(shí)際操作中值得我們大家注意的相關(guān)事項(xiàng)的描述,以下就是正文的主要內(nèi)容
    2013-03-03

最新評(píng)論