高效能的MySQL(5)索引策略

一、索引的優點1、索引可以大大減少伺服器需要掃描的資料量2、索引可以協助伺服器避免排序和暫存資料表。3、索引可以將隨即I/O變為順序I/O二、索引策略1、獨立的列獨立的列是指索引列不能是運算式的一部分,也不能是函數參數。例如:一個有500W條記錄的表,id是主鍵。所以要始終將索引列單獨放在比較符號的一側。2、首碼索引和索引選擇性對於比較大的列,通常可以索引開始的部分字元,這樣可以節約索引空間,提高索引率。但是也會降低索引的選擇性。索引的選擇性是指,不重複的索引值(基數)和表的記錄總數的比值,索引

高效能的MySQL(5)建立高效能的索引一雜湊索引

雜湊索引(hash index)基於雜湊表實現,只有精確匹配索引的所有列的查詢才有效,對於每一行資料,儲存引擎都會對所有索引列計算一個雜湊碼,不同索引值的行計算出來的雜湊碼也不一樣,雜湊碼儲存在雜湊索引中,同時雜湊表中儲存指向每個資料的指標。1、Memory引擎支援雜湊索引,也支援B-Tree索引,而且支援非唯一的雜湊索引,如果多個列的雜湊值相同,索引會以鏈表的方式存放多個記錄指標到同一個雜湊條目,這個是和特別的。舉例說明:CREATE TABLE `testhash` ( `fname`

高效能的MySQL(4)資料類型的最佳化

一、基本原則1、更小的通常更好更小的資料類型通常更快,因為佔用更少的磁碟、記憶體和CPU緩衝,並且處理時需要的CPU周期也更少。但是要確保沒有低估需要儲存的值的範圍,因為在schema中的多個地方增加資料類型的範圍是個非常耗時的操作。2、簡單就好例如,整數比字串操作代價更低,應該用內建類型而不是字串來儲存時間和日期,用整型儲存IP。3、盡量避免NULL可為NULL的列使用更多的儲存空間,需要特殊的處理。特別是可為NULL的列被索引時,每個索引需要額外的位元組,在Myisam引擎裡甚至還可能導致固

高效能的MySQL(3)單條查詢問題還是伺服器問題

發現問題的時候,要確定是單條查詢的問題還是伺服器的問題,如果伺服器上的所有程式都變慢了,又突然都變好了,每一條查詢都變慢了,那麼慢查詢就不一定是原因,反過來說,如果伺服器整體運行沒有問題,只有某條查詢偶爾變慢,就需要將注意力放到這條特定查詢上。為了確定問題的根源,一般我們通過三種技術來解決。1、show global status這個方法實際就是以較高的頻率比如一秒執行一次show global status命令來捕獲資料,問題出現時,則通過某些計數器(比如

高效能的MySQL(2)單條SQL效能

實際應用中,分析單條查詢SQL效能,有3種方法:show status、show profile和慢查詢日誌。一、使用SHOW PROFILE1、預設是禁用的,在會話中開啟#開啟profileset profiling=1;2、當一個查詢到達伺服器時,此工具會把分析資訊記錄到一張暫存資料表,並且給查詢賦予一個從1開始的整數標識符,可以通過show profiles查看。3、上面只顯示了時間上的精度,但是有些時候我們需要更多的資訊那麼,我們可以使用show profile for query 1;

高效能的MySQL(2)慢查詢

一、剖析MySQL查詢1、首先從慢查詢開始,慢查詢是開銷最低,精度最高的測量查詢時間的工具。a、開始mysql的慢查詢,修改my.conf[mysqld]#開啟慢查詢log_slow_queries = ON#指定記錄檔存放位置,可以為空白,系統會給一個預設的檔案host_name-slow.loglog-slow-queries = /usr/local/mysq/var/slowquery.log#記錄超過的時間,預設為10slong_query_time =

mysql 執行計畫最佳化

一條簡單的SQL 陳述式竟花了15.87 sec,寫道mysql> SELECT x.loc AS loc, x.lastmod AS lastmod, x.changefreq AS changefreq, x.changecount AS changecount, x.priority AS priority, x.language AS language, x.ac cess AS access, x.status AS status FROM xmlsitemap x WHERE

Mysql備份和AB複製的過程和步驟

Mysql 的完全備份有2種方式1 使用系統命令直接將Mysql資料拷貝進行備份例如/etc/init.d/mysqld stoptar cvfz /var/lib/mysql/mydb_backup.tar.gz /tmp/etc/init.d/mysqld start此種方法必須要先關閉Mysql服務,這也是一大弊端,而且此備份出的資料不支援不同版本的Mysql進行恢複!所以此法生產環境中很少用2 使用mysqldump 進行備份mysqldump

MySQL的字元集和排序方式

字串類型MySQL的字串分為兩大類:1)二進位字串:即一串位元組序列,對位元組的解釋不涉及字元集,因此它沒有字元集和排序方式的概念2)非二進位字串:由字元構成的序列,字元集用來解釋字串的內容,排序方式決定字元的大小字元集和排序方式字元集和排序方式的關係是這樣的:一個字元集可以有一個或多個排序方式,有一個預設的排序方式,我們可以通過 以下例子說明:mysql> show character set like '%gbk%'; +---------+---------------------

如何修改MySQl資料庫的root密碼

修改MySQl資料庫的root密碼可以通過以下幾種方式來進行:一、在已知MYSQL資料庫的ROOT使用者密碼的情況下,修改密碼的方法:1、在SHELL環境下,使用mysqladmin命令設定:mysqladmin –u root –p password “新密碼”斷行符號後要求輸入舊密碼2、在mysql>環境中,使用update命令,直接更新mysql庫user表的資料:Update mysql.user set

編譯和安裝Mysql資料庫的過程

Mysql是一款開源的關係型資料庫軟體,它憑藉其高效能、高可靠性和便於使用的特性,成為伺服器領域中最受歡迎的開來源資料庫系統。目前互聯中使用Mysql資料的大多是一些web伺服器,因為當前比較流行使用PHP+Mysql做動態網站,所以今天講解的Mysql資料也是針對於網站的。如果有些地方解釋的不是很好,希望大家多多諒解,多多支援。謝謝大家!!!1、安裝前的準備工作如果以前有安裝過.rpm格式的mysql,在這裡需要將其卸載,以免出現程式或連接埠衝突。[root@lcoalhost /]#rpm

MySQL中資料目錄的組織架構

歸根到底,MySQL是運行在作業系統上的一個軟體,它需要藉助於檔案系統儲存資料,本文主要介紹MySQL資料目錄的 組織架構。資料目錄的位置可以通過以下幾個方法查看MySQL資料目錄的位置:1)對於一個正在啟動並執行MySQL伺服器來說,可以通過查看mysqld的進程擷取MySQL資料目錄的位置,如下所示:[root@lx202 /data/mysql/data ]# ps -ef|grep mysqld root 5841 7337 0 15:09 pts/1 00:00:

MySQL的資料類型與效能

MySQL支援的資料類型非常多,選擇正確的資料類型對效能至關重要,本文談談如何正確選擇MySQL的資料類型。整數有以下幾種整數:TINYINT, SMAILLINT, MEDIUMINT, INT, BIGINT,分別使用8, 16, 24, 32, 64位儲存空間 。它們都有一個可選的UNSIGNED屬性,表示不允許負數。你可以為整數類型指定寬度,如INT(13),但對大多數應用

MySQL複製(2) 主備庫都為空白的情況下建立主備複製

本文適用於新安裝的主庫和備庫,假定主備庫為空白,如果你是從已存在的主庫複製,請轉到《[MySQL] 複製(3)- 建立主備複製(從另一個伺服器開始複製)》主庫的配置主庫需要開啟二進位日誌,並制定一個唯一的server id,my.cnf檔案中增加或修改如下內容:server_id=60 log-bin = /data/mysql/log/mysql-bin備庫的配置備庫my.cnf的配置如下:server_id=61 read_only=1 log_bin =

MySQL複製(1) 原理和架構

複製的架構MySQL複製解決的基本問題是讓一台伺服器的資料與其它伺服器保持同步,它具有如下的特徵:1)非同步:這意味著,在同一時間點上備庫的資料可能與主庫不一致,並無法保證它們之間的延遲;2)向後相容:也就是說,備庫的版本可以高於主庫的版本,但不能低於主庫的版本下面是MySQL複製的架構圖:大致分為三個步驟:1)主庫所有的資料更改都記錄到二進位日誌2)備庫通過I/O線程把主庫的二進位日誌複製到備庫的中繼日誌3)備庫通過SQL線程讀取並應用中繼日誌上面這種複製架構使得I/O線程和SQL線程可以非同

MYSQL使用心得(八) 線上主從複製叢集的配置與恢複及主主配置

線上執行主從配置步驟1.鎖表FLUSH TABLES WITH READ LOCK;2.拷貝資料檔案,或者匯出3.記錄下master的日誌位置master_log_filemaster_log_pos4.解除主庫鎖定UNLOCK TABLES;5.開始主從配置6.配置完主從並啟動之後,我們把從庫掛載到叢集中其他在從庫資料檔案夾下,有個master.info檔案,是從機器上特有的。重設從庫:用於讓從屬伺服器忘記其在主伺服器的二進位日誌中的複製位置, 它會刪除master.info和relay-

MYSQL使用心得(三) 效能與管理最佳化

基於/application/search/mysql/mysql-5.5.28/support-files/my-innodb-heavy-4G.cnf二次最佳化【刪除--如果不使用主從同步】注釋,去除無用記錄檔# log-bin=mysql-bin# binlog_format=mixed【修改連結】# 最大連結值從100增加到512max_connections = 512# 錯誤連結從10改到100max_connect_errors = 100【*修改線程數】# CPU邏輯線程數的2-

什麼是MySQL的explain執行計畫

Explain文法EXPLAIN  SELECT ……變體:1. EXPLAIN EXTENDED SELECT ……將執行計畫“反編譯”成SELECT語句,運行SHOW WARNINGS 可得到被MySQL最佳化器最佳化後的查詢語句2. EXPLAIN PARTITIONS SELECT

開源Mysql熱備份工具Xtrabackup詳細學習手冊

1.Xtrabackup工具介紹:Xtrabackup是一個對InnoDB做資料備份的工具,支援線上熱備份(備份時不影響資料讀寫),是商業備份工具InnoDB Hotbackup的一個很好的替代品。Xtrabackup有兩個主要的工具:xtrabackup和innobackupexxtrabackup只能備份InnoDB和XtraDB兩種資料表,而不能備份MyISAM資料表innobackupex是參考了InnoDB

MySQL雲資料庫服務的架構探索

MySQL作為一種低成本、高效能、可靠性良好而且開源的資料庫產品,在互連網企業中應用非常廣泛。例如,淘寶網就有數千台MySQL伺服器。雖然近兩年來NoSQL的發展很快,新產品層出不窮,但在業務中應用NoSQL對開發人員來說要求比較高,而MySQL擁有成熟的中介軟體、營運工具, 已經形成一個良性的生態圈。因此,在現階段的應用中仍然以MySQL為主,NoSQL為輔。在過去一年裡,我們在MySQL託管平台方向做了大量工作,設計和實現了一套UMP(Unified MySQL

總頁數: 2483 1 .... 439 440 441 442 443 .... 2483 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.