欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql索引是在內(nèi)存還是磁盤

黃文隆2年前13瀏覽0評論

MySQL索引是存儲(chǔ)在磁盤上的數(shù)據(jù)結(jié)構(gòu),它包含有關(guān)表中的數(shù)據(jù)的快速訪問路徑。但是它不是完全存儲(chǔ)在磁盤上的。更確切地說,索引的一部分存儲(chǔ)在磁盤上,一部分存儲(chǔ)在內(nèi)存中。

當(dāng)我們在MySQL表上創(chuàng)建索引時(shí),索引會(huì)被存儲(chǔ)在磁盤上。這包括B-樹,B+樹和哈希索引。當(dāng)我們需要查詢數(shù)據(jù)時(shí),MySQL會(huì)加載這些索引到內(nèi)存中,并在內(nèi)存中使用這些索引來查找數(shù)據(jù)。在查詢期間,MySQL使用緩存來存儲(chǔ)最頻繁使用的索引和查詢結(jié)果,以便下次訪問時(shí)可以更快地返回結(jié)果。

MySQL中的緩存被稱為內(nèi)存池。內(nèi)存池包含所有MySQL使用的內(nèi)存,并且被動(dòng)態(tài)地分配和釋放。內(nèi)存池由多個(gè)緩存組成,包括池?cái)?shù)據(jù)緩存、池索引緩存和池實(shí)例緩存。池?cái)?shù)據(jù)緩存用于存儲(chǔ)表中的數(shù)據(jù)的緩存,池索引緩存用于存儲(chǔ)表中的索引的緩存,池實(shí)例緩存用于存儲(chǔ)MySQL服務(wù)器內(nèi)部狀態(tài)的緩存。

mysql>SHOW VARIABLES LIKE '%buffer%';
+-----------------------+----------------------+
| Variable_name         | Value                |
+-----------------------+----------------------+
| bulk_insert_buffer_size | 8388608          |
| innodb_buffer_pool_instances  | 8    |
| innodb_buffer_pool_size | 2147483648    |
| innodb_change_buffer_max_size          | 25 |
| innodb_log_buffer_size | 16777216          |
| join_buffer_size      | 262144             |
| key_buffer_size       | 1073741824     |
| myisam_sort_buffer_size | 8388608          |
| net_buffer_length     | 16384              |
| preload_buffer_size   | 32768              |
| read_buffer_size      | 131072             |
| read_rnd_buffer_size  | 262144             |
| sort_buffer_size      | 262144             |
| sql_buffer_result     | OFF                |
+-----------------------+----------------------+

我們可以使用“SHOW VARIABLES LIKE '%buffer%'”命令查看當(dāng)前MySQL中所有緩存的大小。在上面的代碼中,我們可以看到key_buffer_size和innodb_buffer_pool_size是兩個(gè)常見的緩存。key_buffer_size是用于MyISAM存儲(chǔ)引擎的索引緩存,而innodb_buffer_pool_size是用于InnoDB存儲(chǔ)引擎的數(shù)據(jù)和索引緩存。