日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql那些招

發(fā)布時間:2024/4/11 数据库 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql那些招 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

show table status

mysql官方文檔在

http://dev.mysql.com/doc/refman/5.1/en/show-table-status.html

這里的rows行是表的行數(shù),但是實(shí)際上是不準(zhǔn)的。myisam是準(zhǔn)的,其他的存儲引擎是不準(zhǔn)的。要準(zhǔn)確的行數(shù)就需要使用count(*) 來獲取了。

mysql執(zhí)行大批量刪除

執(zhí)行大批量刪除的時候注意要使用上limit

因?yàn)槿绻挥胠imit,刪除大量數(shù)據(jù)很有可能造成死鎖

如果delete的where語句不在索引上,可以先找主鍵,然后根據(jù)主鍵刪除數(shù)據(jù)庫

ps: 平時update和delete的時候最好也加上limit 1 來防止誤操作

optimize、Analyze、check、repair維護(hù)操作

l optimize 數(shù)據(jù)在插入,更新,刪除的時候難免一些數(shù)據(jù)遷移,分頁,之后就出現(xiàn)一些碎片,久而久之碎片積累起來影響性能,這就需要DBA定期的優(yōu)化數(shù)據(jù)庫減少碎片,這就通過optimize命令。

如對MyisAM表操作:optimize table 表名

對于InnoDB表是不支持optimize操作,否則提示“Table does not support optimize, doing recreate + analyze instead”,當(dāng)然也可以通過命令:alter table one type=innodb; 來替代。

l Analyze 用來分析和存儲表的關(guān)鍵字的分布,使得系統(tǒng)獲得準(zhǔn)確的統(tǒng)計(jì)信息,影響 SQL 的執(zhí)行計(jì)劃的生成。對于數(shù)據(jù)基本沒有發(fā)生變化的表,是不需要經(jīng)常進(jìn)行表分析的。但是如果表的數(shù)據(jù)量變化很明顯,用戶感覺實(shí)際的執(zhí)行計(jì)劃和預(yù)期的執(zhí)行計(jì)劃不 同的時候,執(zhí)行一次表分析可能有助于產(chǎn)生預(yù)期的執(zhí)行計(jì)劃。

Analyze table 表名

l Check檢查表或者視圖是否存在錯誤,對 MyISAM 和 InnoDB 存儲引擎的表有作用。對于 MyISAM 存儲引擎的表進(jìn)行表檢查,也會同時更新關(guān)鍵字統(tǒng)計(jì)數(shù)據(jù)

l Repair optimize需要有足夠的硬盤空間,否則可能會破壞表,導(dǎo)致不能操作,那就要用上repair,注意INNODB不支持repair操作

生成亂序的id

方法:

使用預(yù)設(shè)表

比如id和toid的映射

其中id是固定的,toid是隨機(jī)的。

然后在redis或memcache中記錄一個指針值,指向id

當(dāng)要獲取一個新toid的時候,取出指針值,加1,然后去預(yù)設(shè)表中獲取toid

查詢和索引

查詢的時候必須要考慮到如何命中索引

比如有幾個小招:

1 不要在索引列中使用表達(dá)式

where mycol *2 < 4

2 不要在like模式的開始位置使用通配符%

where col_name like ‘%string%’

不如

where col_name like ‘string%’

3 避免過多使用mysql自動轉(zhuǎn)換類型,有可能無法用到index

比如

select * from mytbl where str_col=4

但是str_col為字符串,這里其實(shí)就隱含了字符串變化

應(yīng)該使用

select * from mytbl where str_col=’4’

索引比表還大就不需要建立索引了嗎

索引是按照順序排列的。所以即使索引比表大,也是可以加快查詢速度的。

當(dāng)然如果索引比表還大首要的任務(wù)必須是檢查下索引建立地是否有問題

Char和varchar如何選擇

char是定長,varchar變長
varchar除了設(shè)置了數(shù)據(jù)之外,還多使用1兩個字節(jié)定義了數(shù)據(jù)實(shí)際長度。

char會在后面空余的行填充上空字符串

myisam建議使用char。myisam中有個靜態(tài)表的概念。使用char比使用varchar的查詢效率高很多。

innodb建議使用varchar。主要是從節(jié)省空間的方面考慮

多個TimeStamp設(shè)置默認(rèn)值

一個表中至多只能有一個字段設(shè)置CURRENT_TIMESTAMP

對于下面的需求:

一個表中,有兩個字段,createtime和updatetime。

1 當(dāng)insert的時候,sql兩個字段都不設(shè)置,會設(shè)置為當(dāng)前的時間

2 當(dāng)update的時候,sql中兩個字段都不設(shè)置,updatetime會變更為當(dāng)前的時間

這樣的需求是做不到的。因?yàn)槟銦o法避免在兩個字段上設(shè)置CURRENT_TIMESTAMP

?

解決辦法有幾個:

1 使用觸發(fā)器。

2 將第一個timestamp的default設(shè)置為0

3 老老實(shí)實(shí)在sql語句中使用時間戳。

http://www.cnblogs.com/yjf512/archive/2012/11/02/2751058.html

查詢數(shù)據(jù)表有多少行,多少容量

不要使用select count(*)

使用show table status like ‘table_name’? 但是innodb的話會有50%左右的浮動,是個預(yù)估值

AUTO_INCREMENT的設(shè)置

1 不要設(shè)置為int,請?jiān)O(shè)置為unsinged int,auto_increment的范圍是根據(jù)類型來判定的

2 auto_increment數(shù)據(jù)列必須要有索引,并且保證唯一性。

3 auto_increment必須有NOT NULL屬性

4 auto_increment可以使用

UPDATE table SET seq = LAST_INSERT_ID(seq -1)

mysql的表示時間的字段用什么類型

表示時間可以使用timestamp和datetime來使用

datetime表示的時間可以從0000-00-00:00:00 到9999-12-31:00:00:00

timestamp表示的時間為1970-01-01 08:00:01到2038-01-19 11:14:07

timestamp占用的空間比datetime少,且可以設(shè)置時區(qū)等功能,所以能使用timestamp的地方盡量使用timestamp

使用timestamp還可以設(shè)置

[ON UPDATE CURRENT_TIMESTAMP]

[DEFAULT CURRENT_TIMESTAMP]

myisam和innodb支持外鍵

myisam不支持外鍵,innodb支持;

如果你使用創(chuàng)建外鍵的命令對myisam的表操作,操作不會返回失敗,但是是沒有外鍵關(guān)聯(lián)建立起來的。

對一個字段加減語句

經(jīng)常有需求對一個字段加減會使用

update table set a = a+1

這樣是對的

但是如果這樣設(shè)置:

select a from table

取出數(shù)據(jù)后a為1

update table set a =2

這樣會導(dǎo)致如果在select和update之間有其他事務(wù)操作修改這個字段的話,導(dǎo)致最后的設(shè)置可能出錯。

總結(jié)

以上是生活随笔為你收集整理的mysql那些招的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 午夜美女视频 | 亚洲人成色777777精品音频 | 黄色一级一片 | 色综合视频在线观看 | 黄色网址在线看 | 手机看片日韩久久 | 欧美乱三级 | 视屏一区 | 黄色视屏在线免费观看 | 日韩高清一二三区 | 亚洲图片自拍偷拍区 | 欧美男人亚洲天堂 | 9i精品福利一区二区三区 | 国产精品视频大全 | 国产一区精品视频 | 一级网站在线观看 | 天天激情综合 | 日韩精品――色哟哟 | 国产丝袜第一页 | 成人爽爽视频 | 欧美一区二区免费电影 | 日本www在线播放 | 18视频在线观看娇喘 | 和漂亮岳做爰3中文字幕 | 日剧大尺度床戏做爰 | 欧美91| 亚洲v国产 | 国产美女视频免费观看下载软件 | 97影院 | 成人国产精品入口 | 亚洲av中文无码乱人伦在线视色 | 国产在线成人 | 黄色成人免费网站 | 亚洲欧美小视频 | 亚洲女人在线 | 日韩avav| 好男人.www| 国产探花一区二区 | 香蕉在线影院 | 天堂av亚洲av国产av电影 | 小视频在线看 | 日本少妇videos高潮 | 激情四月 | 国产精品无码专区av免费播放 | 国产极品免费 | 亚洲第一视频在线播放 | 国产a级片视频 | 国产成人午夜高潮毛片 | 校园春色中文字幕 | 精品国产91久久久久久久妲己 | 国产极品在线播放 | 女人17片毛片60分钟 | 亚洲天堂成人在线观看 | 日本免费电影一区二区三区 | 四虎影库永久在线 | 亚洲免费黄色 | 国产欧美日韩综合精品一区二区三区 | 红桃视频网站 | 波多野久久 | 亚洲免费婷婷 | 婷婷中文网 | 国产精品视频免费看 | 偷拍一区二区 | 国产裸体舞一区二区三区 | 麻豆视频在线免费观看 | 白嫩情侣偷拍呻吟刺激 | 亚洲国产视频在线 | 亚洲清纯唯美 | 天天爽夜夜爽夜夜爽 | 性色视频在线 | 午夜天堂在线观看 | 国产福利av | 欧洲在线一区 | 亚洲h | 在线免费观看高清视频 | 男女黄色网 | 久久性生活 | 国产精品99re | 豆花视频在线播放 | 欧美日韩一区二区三区在线播放 | 国产又白又嫩又爽又黄 | 国产无遮挡免费观看视频网站 | 欧美精品一区在线 | 国产精品videossex久久发布 | 老司机久久精品视频 | 久久国产视频网站 | 欧美日韩一区二区三区国产精品成人 | 欧洲高潮三级做爰 | 香蕉伊人网 | 天天射天天拍 | 亚洲天堂日本 | 色撸撸在线 | 亚洲免费一 | 欧美一级片在线看 | 久久99精品久久久水蜜桃 | 我们俩电影网mp4动漫官网 | 伊人激情综合网 | 99在线观看 | 天堂成人在线视频 |