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

歡迎訪問 生活随笔!

生活随笔

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

数据库

mysql数据库优化语句_mysql数据库优化语句

發(fā)布時(shí)間:2024/9/27 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql数据库优化语句_mysql数据库优化语句 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

mysql優(yōu)化語句數(shù)據(jù)庫語句: Ddl(數(shù)據(jù)定義語言) alter create drop Dml(數(shù)據(jù)操作語言) inset delete update www.2cto.com Dtl(數(shù)據(jù)事務(wù)語言) conmmit rollback savepoint Select Dcl(數(shù)據(jù)控制語句) grant賦權(quán)限 revoke回收 Mysql數(shù)據(jù)庫優(yōu)化: 1、 數(shù)據(jù)庫表

mysql優(yōu)化語句

數(shù)據(jù)庫語句:

Ddl(數(shù)據(jù)定義語言) ? ?alter ?create ? drop

Dml(數(shù)據(jù)操作語言) ? inset ?delete ?update

www.2cto.com

Dtl(數(shù)據(jù)事務(wù)語言) ?conmmit ?rollback ? savepoint

Select

Dcl(數(shù)據(jù)控制語句) grant賦權(quán)限 ?revoke回收

Mysql數(shù)據(jù)庫優(yōu)化:

1、 ?數(shù)據(jù)庫表 要設(shè)計(jì)合理(符合3NF,有時(shí)候也需要適當(dāng)?shù)哪娣妒?

2、 ?Sql語句的優(yōu)化(索引,常用小技巧)

3、 ?數(shù)據(jù)庫的配置

4、 ?適當(dāng)?shù)挠布渲煤筒僮飨到y(tǒng)

5、 ?讀寫分離

問:什么是數(shù)據(jù)庫3范式?

1NF: 就是具有原子性,不可分割(只要使用的是關(guān)系型數(shù)據(jù)庫,就會(huì)自動(dòng)符合)

2NF: 在滿足1NF的基礎(chǔ)上,我們考慮是否滿足2NF,只要表的記錄滿足唯一性,也就是說,你的同一張表中不可能出現(xiàn)完全相同的記錄,一般說我們?cè)诒碇性O(shè)計(jì)一個(gè)主鍵即可。

3NF: 在滿足2NF: 的基礎(chǔ)上,我們考慮是否滿足3NF,既我們的字段信息可以通過關(guān)聯(lián)的關(guān)系,派生即可(通常我們通過外鍵來處理)使用外鍵數(shù)據(jù)庫的存儲(chǔ)引擎必須是innoDB

問2:數(shù)據(jù)庫參數(shù)配置

對(duì)于innodb存儲(chǔ)引擎最重要的就是內(nèi)存,所以下面的兩個(gè)參數(shù)調(diào)的很大

Innodb_additional_mem_pool_size = 64M ? ?www.2cto.com

Innodb_buffer_pool_size = 1G ? ? 緩沖池大小

對(duì)于myisam,需要調(diào)整key_buffer_size

用show ?status 語句可以看到當(dāng)前狀態(tài),以決定調(diào)整那些參數(shù)

一、顯示你使用過多少次insert ?, update ? , ?delete 等

Sql: ? ?show status ?like ?“Com”;

//在命令窗口中不關(guān)閉的時(shí)候查詢會(huì)準(zhǔn)確,如果關(guān)閉就會(huì)從新開始統(tǒng)計(jì)

Show sessionstatus like “Com_update”;

//就算關(guān)閉窗口也會(huì)將全部的你執(zhí)行過的次數(shù)統(tǒng)計(jì)出來

Show globalstatus like “Com_insert”;

Example: ?session

假如已經(jīng)使用了6次update

1、 ?用session統(tǒng)計(jì) 會(huì)是6次

如果關(guān)閉后命令窗口后在執(zhí)行Show session statuslike “Com_update”; ?就為0了

2、 ?但是如果用Show global status like “Com_insert”;就是6次

二、顯示試圖連接Mysql服務(wù)器的次數(shù)

Show ?status like ?“Connections”;

數(shù)據(jù)庫啟動(dòng)多長(zhǎng)時(shí)間了

Show ?status like ? “uptime”;

顯示慢查詢多少次(默認(rèn)是10秒)

Show ?status like ?“Slow_queries”;

四、如何在一個(gè)項(xiàng)目中,找到慢查詢的select,數(shù)據(jù)庫支持把慢查詢的語句記錄到日志中,供程序員來分析 ?www.2cto.com

步驟:

1、 啟動(dòng)mysql(特殊的啟動(dòng)方式)

a) ? ? ? ?在mysql的安裝目錄下的bin目錄下啟動(dòng)mysqld.exe –slow-query

b) ? ? ? Netstat –an 查看3306端口是否啟動(dòng)

c) ? ? ? ?查詢慢查詢的次數(shù) ? show status ?like ?“Slow_queries”;

d) ? ? ? 設(shè)置慢查詢的時(shí)間 ? set long_query_time=1;

索引優(yōu)化:

比如說增加主鍵索引

Alter ?table user ? add ?primary key(id);

刪除主鍵索引

Alter ?table user ?drop ?primary key

刪除索引

Alter ?table ?user drop ?index ? 索引名

顯示索引

Show ?index(es) ?from ?表名

Show ?keys ?from ?表名

Desc ?表名

增加索引致使查詢會(huì)變快好多,其原理就像一本書如果沒有目錄的話那么如果你想找一個(gè)知識(shí)點(diǎn)會(huì)很難找到,只能一點(diǎn)一點(diǎn)的翻著找,如果有目錄的話會(huì)很快的定位到這個(gè)知識(shí)點(diǎn)在那個(gè)章節(jié)中大概什么位置這樣查詢起來自然就會(huì)快了啊,但是有利必有弊,索引會(huì)對(duì)查詢帶來好處,但是對(duì)add ? update ? delete ?來說自然就很麻煩了,比如說你添加一個(gè)知識(shí)點(diǎn),你不許還有在目錄中添加他是屬于那章那節(jié)中的那個(gè)知識(shí)點(diǎn),同樣在修改和刪除的時(shí)候也會(huì)隨之改變,來保持信息的準(zhǔn)確性。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

一個(gè)自動(dòng)分析是否需要使用索引的命令:explain

Example: ?explain ?select ?* ?from emp ? where ? id ?= ? 9;

索引的分類:

主鍵索引(primary ? key)

唯一鍵索引(unique)

Index(普通索引)

全文索引(fulltext)

復(fù)合索引(多列和在一起)

www.2cto.com

在那些列上添加索引比較合適:

1、比較頻繁的作為查詢條件的字段應(yīng)該加上索引

2、 ?唯一性比較差的字段不適合單獨(dú)創(chuàng)建索引,及時(shí)頻繁作為查詢條件

3、 ?更新非常頻繁的字段不適合創(chuàng)建索引

4、 ?不會(huì)出現(xiàn)在where子句中的字段不該創(chuàng)建索引

查詢一個(gè)表中的所有索引: show ?indexes ? from ?table(表名)

索引的使用:

查詢要使用索引最重要的條件是查詢條件中需要使用索引

以下幾種情況可能會(huì)使用到索引

1、 ?對(duì)于創(chuàng)建的多列索引,只要查詢條件使用了最左邊的列,索引一般就會(huì)被使用

2、 ?對(duì)于使用like的查詢,查詢?nèi)绻恰?aaa’不會(huì)使用到索引‘a(chǎn)aa%’會(huì)使用到索引

以下的表中將不使用索引

1、 ?如果條件中有or,即使其中有條件帶索引也不會(huì)使用

2、 ?對(duì)于多列索引,不是使用的第一部分,則不會(huì)使用索引

3、 ?Like查詢是以%開頭

4、 ?如果列類型是字符串,那么一定要在條件中將數(shù)據(jù)使用引號(hào)引起來,否則不使用索引。

5、 ?如果mysql估計(jì)使用全表掃描要比使用索引快,則不使用索引。

查看索引的使用情況

Show status ?like ? ‘handler_read%’;

只有handler_read_key ?越大越好

Handler_read_rnd_next ?越小越好

數(shù)據(jù)庫類型:

MyISAM ?不支持事務(wù)和外鍵,一張表由三個(gè)文件組成,.frm ?.myi ?.myd

innoDB ? ?支持事務(wù)和外鍵

對(duì)于MyISAM來說查詢快,不過刪除字段時(shí)空間是不會(huì)釋放的,必須使用手動(dòng)釋放 ? ? ? ?optimize ? table ?table_name ?www.2cto.com

數(shù)據(jù)庫分表:

1、 ?水平分表

2、 ?垂直分表:

Stu表:

id

Name

Pass

Photo

Mark表

Id

Sid

Question

answer

垂直分表針對(duì)于關(guān)聯(lián)類型的表,比如說,有一個(gè)學(xué)生的個(gè)人信息(有頭像)表,一個(gè)考試信息(考試題和答案)表,這時(shí)我想查一個(gè)學(xué)生的考試分?jǐn)?shù)和個(gè)人信息,那么mysql會(huì)將學(xué)生的個(gè)人信息和考試信息表關(guān)聯(lián),速度回降低很多,所以要將考試信息中的答案和題目分開在創(chuàng)建一個(gè)表,如果在提高還可以將頭像分開為一個(gè)單獨(dú)的表(如百度單獨(dú)的圖片服務(wù)器)

讀寫分離:

作者 web8

總結(jié)

以上是生活随笔為你收集整理的mysql数据库优化语句_mysql数据库优化语句的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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