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

有關(guān)mysql優(yōu)化的一些東東整理

 更新時(shí)間:2013年02月04日 17:50:53   作者:  
有關(guān)mysql優(yōu)化的一些東東,自己整理的,網(wǎng)上搜集的,供朋友們學(xué)習(xí)參考吧

1.查詢(xún)幫助 ? contents
2.使用合成的散列值,分離BLOB或者TEXT
3.貨幣使用定點(diǎn)數(shù)(decimal或者numberic)
4.sql_mode?
5.order by rand() limit 1000;
6.優(yōu)化show status like 'Com' Com_select Com_insert等查看插入多還是查詢(xún)多
7.Handler_read_key 的值將很高,這個(gè)值代表了一個(gè)行被索引值讀的次數(shù),很低的值表明增加索引得到的性能改善不高,因?yàn)樗饕⒉唤?jīng)常使用.Handler_read_rnd_next 的值高則意味著查詢(xún)運(yùn)行低效,并且應(yīng)該建立索引補(bǔ)救。這個(gè)值的含義是在數(shù)據(jù)文件中讀下一行的請(qǐng)求數(shù)。如果你正進(jìn)行大量的表掃描,該值較高。通常說(shuō)明表索引不正確或?qū)懭氲牟樵?xún)沒(méi)有利用索引.
8.定期分析表   ANALYZE TABLE   CHECK TABLE    CHECKSUM TABLE
9.優(yōu)化表 OPTIMIZE TABLE
10.導(dǎo)入大數(shù)據(jù):Myisam  ALTER TABLE tblname DISABLE KEYS    loading the data    ALTER TABLE tblname ENABLE KEYS;
Innodb  SET UNIQUE_CHECKS=0     SET AUTOCOMMIT=0
11.優(yōu)化insert:LOAD DATA INFILE    replace   ignore
12.優(yōu)化group by     ORDER BY NULL
13.show status like 'Table%';               show status like 'innodb_row_lock%';
14.CREATE TABLE innodb_monitor(a INT) ENGINE=INNODB;
15.影響Mysql 性能的重要參數(shù):
key_buffer_size :  說(shuō)明:鍵緩存(變量key_buffer_size) 被所有線(xiàn)程共享;服務(wù)器使用的其它緩存則根據(jù)需要分配。此參數(shù)只適用于myisam 存儲(chǔ)引擎。
table_cache:數(shù)據(jù)庫(kù)中打開(kāi)表的緩存數(shù)量。table_cache 與max_connections 有關(guān)。例如,對(duì)于200 個(gè)并行運(yùn)行的連接,應(yīng)該讓表的緩至少有200 * N,這里N 是可以執(zhí)行的查詢(xún)的一個(gè)聯(lián)接中表的最大數(shù)量。還需要為臨時(shí)表和文件保留一些額外的文件描述符。
innodb_buffer_pool_size:緩存InnoDB 數(shù)據(jù)和索引的內(nèi)存緩沖區(qū)的大小。你把這個(gè)值設(shè)得越高,訪問(wèn)表中數(shù)據(jù)需要得磁盤(pán)I/O 越少。

innodb_flush_log_at_trx_commit:0|1|2
innodb_additional_mem_pool_size:1M
innodb_table_locks:0|1
innodb_lock_wait_timeout:
innodb_support_xa:通過(guò)該參數(shù)設(shè)置是否支持分布式事務(wù),默認(rèn)值是ON 或者1,表示支持分布式事務(wù)。如果確認(rèn)應(yīng)用中不需要使用分布式事務(wù),則可以關(guān)閉這個(gè)參數(shù),減少磁盤(pán)刷新的次數(shù)并獲得更好的InnoDB 性能。
innodb_doublewrite:
innodb_log_buffer_size:
innodb_log_file_size:

1.數(shù)據(jù)庫(kù)的設(shè)計(jì)
盡量把數(shù)據(jù)庫(kù)設(shè)計(jì)的更小的占磁盤(pán)空間.
1).盡可能使用更小的整數(shù)類(lèi)型.(mediumint就比int更合適).
2).盡可能的定義字段為not null,除非這個(gè)字段需要null.(這個(gè)規(guī)則只適合字段為KEY的情形)
3).如果沒(méi)有用到變長(zhǎng)字段的話(huà)比如varchar,那就采用固定大小的紀(jì)錄格式比如char.(CHAR 總是比VARCHR快)
4).表的主索引應(yīng)該盡可能的短.這樣的話(huà)每條紀(jì)錄都有名字標(biāo)志且更高效.
5).只創(chuàng)建確實(shí)需要的索引。索引有利于檢索記錄,但是不利于快速保存記錄。如果總是要在表的組合字段上做搜索,那么就在這些字段上創(chuàng)建索引。索引的第一部分必須是最常使用的字段.如果總是需要用到很多字段,首先就應(yīng)該多復(fù)制這些字段,使索引更好的壓縮。
(這條只適合MYISAM引擎的表,對(duì)于INNODB則在保存記錄的時(shí)候關(guān)系不大,因?yàn)镮NNODB是以事務(wù)為基礎(chǔ)的,如果想快速保存記錄的話(huà),特別是大批量的導(dǎo)入記錄的時(shí)候)
6).所有數(shù)據(jù)都得在保存到數(shù)據(jù)庫(kù)前進(jìn)行處理。
7).所有字段都得有默認(rèn)值。
8).在某些情況下,把一個(gè)頻繁掃描的表分成兩個(gè)速度會(huì)快好多。在對(duì)動(dòng)態(tài)格式表掃描以取得相關(guān)記錄時(shí),它可能使用更小的靜態(tài)格式表的情況下更是如此。
(具體的表現(xiàn)為:MYISAM表的MERGE類(lèi)型,以及MYISAM和INNODB通用的分區(qū),詳情見(jiàn)手冊(cè))
9).不會(huì)用到外鍵約束的地方盡量不要使用外鍵。

2.系統(tǒng)的用途
1).及時(shí)的關(guān)閉對(duì)MYSQL的連接。
2).explain 復(fù)雜的SQL語(yǔ)句。(這樣能確定你的SELECT 語(yǔ)句怎么優(yōu)化最佳)
3).如果兩個(gè)關(guān)聯(lián)表要做比較話(huà),做比較的字段必須類(lèi)型和長(zhǎng)度都一致.(在數(shù)據(jù)龐大的時(shí)候建立INDEX)
4).LIMIT語(yǔ)句盡量要跟order by或者 distinct.這樣可以避免做一次full table scan.
5).如果想要清空表的所有紀(jì)錄,建議用truncate table tablename而不是delete from tablename.
不過(guò)有一個(gè)問(wèn)題,truncate 不會(huì)在事務(wù)處理中回滾。因?yàn)樗{(diào)用create table 語(yǔ)句。
(Truncate Table 語(yǔ)句先刪除表然后再重建,這個(gè)是屬于文件級(jí)別的,所以自然快N多)
實(shí)測(cè)例子:
song2為INNODB表。

復(fù)制代碼 代碼如下:

mysql> select count(1) from song2;
+----------+
| count(1) |
+----------+
|   500000 |
+----------+
1 row in set (0.91 sec)
mysql> delete from song2;
Query OK, 500000 rows affected (15.70 sec)
mysql> truncate table song2;
Query OK, 502238 rows affected (0.17 sec)

6).能使用STORE PROCEDURE 或者 USER FUNCTION的時(shí)候.(ROUTINE總是減少了服務(wù)器端的開(kāi)銷(xiāo))
7).在一條insert語(yǔ)句中采用多重紀(jì)錄插入格式.而且使用load data infile來(lái)導(dǎo)入大量數(shù)據(jù),這比單純的indert快好多.(在MYSQL中具體表現(xiàn)為:INSERT INTO TABLEQ VALUES (),(),...();)
(還有就是在MYISAM表中插入大量記錄的時(shí)候先禁用到KEYS后面再建立KEYS,具體表現(xiàn)語(yǔ)句:
 ALTER TABLE TABLE1 DISABLE KEYS;ALTER TABLE TABLE1 ENABLE KEYS;
而對(duì)于INNNODB 表在插入前先 set autocommit=0;完了后:set autocommit=1;這樣效率比較高。)
8).經(jīng)常OPTIMIZE TABLE 來(lái)整理碎片.
9).還有就是date 類(lèi)型的數(shù)據(jù)如果頻繁要做比較的話(huà)盡量保存在unsigned int 類(lèi)型比較快。

3.系統(tǒng)的瓶頸
1).磁盤(pán)搜索.
并行搜索,把數(shù)據(jù)分開(kāi)存放到多個(gè)磁盤(pán)中,這樣能加快搜索時(shí)間。
2).磁盤(pán)讀寫(xiě)(IO)
可以從多個(gè)媒介中并行的讀取數(shù)據(jù)。
3).CPU周期
數(shù)據(jù)存放在主內(nèi)存中.這樣就得增加CPU的個(gè)數(shù)來(lái)處理這些數(shù)據(jù)。
4).內(nèi)存帶寬
當(dāng)CPU要將更多的數(shù)據(jù)存放到CPU的緩存中來(lái)的話(huà),內(nèi)存的帶寬就成了瓶頸。

相關(guān)文章

  • linux下講解MySQL安裝與登錄方法

    linux下講解MySQL安裝與登錄方法

    MySQL安裝文件已被廣泛應(yīng)用但是也在不斷的更新,這里介紹MySQL安裝文件設(shè)置使用,幫助大家安裝更新MySQL安裝文件系統(tǒng)。
    2010-11-11
  • MySQL DELETE速度提高的幾種方法

    MySQL DELETE速度提高的幾種方法

    提高M(jìn)ySQL中DELETE操作的速度通常涉及多個(gè)方面,包括優(yōu)化查詢(xún)、索引、表結(jié)構(gòu)、硬件和配置等,本文主要介紹了MySQL DELETE速度提高的幾種方法,感興趣的可以了解一下
    2024-07-07
  • 一文帶你了解MySQL基于規(guī)則的優(yōu)化

    一文帶你了解MySQL基于規(guī)則的優(yōu)化

    MySQL依據(jù)一些規(guī)則,竭盡全力的把這些很糟糕的語(yǔ)句轉(zhuǎn)換成某種可以比較高效執(zhí)行的形式,這個(gè)過(guò)程也可以被稱(chēng)作查詢(xún)重寫(xiě),本章主要就是詳細(xì)講解下這些比較重要的重寫(xiě)規(guī)則,感興趣的小伙伴可跟著小編一起來(lái)學(xué)習(xí)
    2023-05-05
  • mySQL占用虛擬內(nèi)存達(dá)8百多兆問(wèn)題解決思路

    mySQL占用虛擬內(nèi)存達(dá)8百多兆問(wèn)題解決思路

    為了裝mysql環(huán)境測(cè)試,裝上后發(fā)現(xiàn)啟動(dòng)后mysql占用了很大的虛擬內(nèi)存,達(dá)8百多兆,需要的朋友可以參考下
    2012-12-12
  • 介紹一個(gè)針對(duì)C++程序的MySQL訪問(wèn)庫(kù)soci

    介紹一個(gè)針對(duì)C++程序的MySQL訪問(wèn)庫(kù)soci

    這篇文章主要介紹了介紹一個(gè)針對(duì)C++程序的MySQL訪問(wèn)庫(kù)soci,文章中還講了其中的一些操作方法,需要的朋友可以參考下
    2015-05-05
  • 運(yùn)維角度淺談MySQL數(shù)據(jù)庫(kù)優(yōu)化(李振良)

    運(yùn)維角度淺談MySQL數(shù)據(jù)庫(kù)優(yōu)化(李振良)

    一個(gè)成熟的數(shù)據(jù)庫(kù)架構(gòu)并不是一開(kāi)始設(shè)計(jì)就具備高可用、高伸縮等特性的,它是隨著用戶(hù)量的增加,基礎(chǔ)架構(gòu)才逐漸完善。這篇博文主要談MySQL數(shù)據(jù)庫(kù)發(fā)展周期中所面臨的問(wèn)題及優(yōu)化方案
    2015-07-07
  • MySQL定時(shí)器開(kāi)啟、調(diào)用實(shí)現(xiàn)代碼

    MySQL定時(shí)器開(kāi)啟、調(diào)用實(shí)現(xiàn)代碼

    有些新手朋友對(duì)MySQL定時(shí)器開(kāi)啟、調(diào)用不是很熟悉,本人整理測(cè)試一些,拿出來(lái)和大家分享一下,希望可以幫助你們
    2012-12-12
  • MySQL查詢(xún)倒數(shù)第二條記錄實(shí)現(xiàn)方法

    MySQL查詢(xún)倒數(shù)第二條記錄實(shí)現(xiàn)方法

    這篇文章主要介紹了MySQL查詢(xún)倒數(shù)第二條記錄實(shí)現(xiàn)方法,本文直接給出代碼實(shí)例,重要部分已經(jīng)加紅提示,需要的朋友可以參考下
    2015-05-05
  • MySQL 5.7.20綠色版安裝詳細(xì)圖文教程

    MySQL 5.7.20綠色版安裝詳細(xì)圖文教程

    MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典MySQL AB公司開(kāi)發(fā),目前屬于Oracle旗下產(chǎn)品。這篇文章主要介紹了MySQL 5.7.20綠色版安裝詳細(xì)圖文教程,需要的朋友可以參考下
    2017-11-11
  • MySQL的driverClassName與url使用方式

    MySQL的driverClassName與url使用方式

    這篇文章主要介紹了MySQL的driverClassName與url使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01

最新評(píng)論

广灵县| 绥化市| 汶川县| 辉县市| 桃园市| 收藏| 荣昌县| 江北区| 双流县| 宣化县| 视频| 酉阳| 孟州市| 黄龙县| 随州市| 鸡东县| 马鞍山市| 凤城市| 开封市| 自贡市| 刚察县| 白城市| 宁南县| 长寿区| 东阳市| 沧州市| 阿拉尔市| 普定县| 万山特区| 米泉市| 沾益县| 蕉岭县| 哈巴河县| 犍为县| 长丰县| 石景山区| 文安县| 浦县| 保定市| 陇西县| 博湖县|