欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL 虛擬列和虛擬索引的實(shí)現(xiàn)

 更新時(shí)間:2024年08月22日 10:00:15   作者:Q z1997  
虛擬列是MySQL 5.7開始引入的新特性,本文主要介紹了MySQL 虛擬列和虛擬索引的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

是什么

Mysql 5.7 中推出了一個(gè)非常實(shí)用的功能 虛擬列 Generated (Virtual) Columns

在MySQL 5.7中,支持兩種Generated Column,即Virtual Generated Column和Stored Generated Column,前者只將Generated Column保存在數(shù)據(jù)字典中(表的元數(shù)據(jù)),并不會(huì)將這一列數(shù)據(jù)持久化到磁盤上;后者會(huì)將Generated Column持久化到磁盤上,而不是每次讀取的時(shí)候計(jì)算所得。很明顯,后者存放了可以通過已有數(shù)據(jù)計(jì)算而得的數(shù)據(jù),需要更多的磁盤空間,與Virtual Column相比并沒有優(yōu)勢(shì),因此,MySQL 5.7中,不指定Generated Column的類型,默認(rèn)是Virtual Column。

如果需要Stored Generated Golumn的話,可能在Virtual Generated Column上建立索引更加合適

綜上,一般情況下,都使用Virtual Generated Column,這也是MySQL默認(rèn)的方式

能干嘛

能對(duì) where 條件 上使用函數(shù)等原因使索引失效 如使用函數(shù) 就可以對(duì)這個(gè) 字段和函數(shù)建立一個(gè)虛擬類和虛擬索引提高效率

怎么用

比如是 sys_user 表中 create_time

在這里插入圖片描述

他是一個(gè)datetime 類型的
假設(shè)我們有一個(gè)查詢

SELECT dayofweek(create_time) from  sys_user WHERE dayofweek(create_time) = 1 

結(jié)果

在這里插入圖片描述

執(zhí)行計(jì)劃

在這里插入圖片描述

如果我們?yōu)閏reate_time 字段 建立索引 這個(gè)查詢語句 仍然無法使用索引 因?yàn)?函數(shù) 阻止了索引 (這里就不實(shí)驗(yàn)了啊 有興趣可以自己試試 肯定沒用)

建立一個(gè)虛擬列

在這里插入圖片描述

ALTER TABLE `qzboot`.`sys_user` 
ADD COLUMN `create_time_dayofweek` tinyint(4)  GENERATED ALWAYS AS (dayofweek(create_time)) VIRTUAL ;

新建一個(gè)虛擬索引

在這里插入圖片描述

ALTER TABLE `qzboot`.`sys_user` 
ADD INDEX `test`(`create_time_dayofweek`) USING BTREE COMMENT '虛擬索引';
SELECT dayofweek(create_time) from  sys_user WHERE dayofweek(create_time) = 1

#  sql 改造
SELECT create_time_dayofweek from  sys_user WHERE create_time_dayofweek = 1 

結(jié)果

在這里插入圖片描述

執(zhí)行計(jì)劃

在這里插入圖片描述

虛擬列不存儲(chǔ)在數(shù)據(jù)行中,但虛擬列的元數(shù)據(jù)信息會(huì)存在于相關(guān)系統(tǒng)表中,對(duì)虛擬列的添加或者刪除只會(huì)涉及這些系統(tǒng)表,不會(huì)導(dǎo)致數(shù)據(jù)表的重建,所以效率很高

到此這篇關(guān)于MySQL 虛擬列和虛擬索引的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)MySQL 虛擬列和虛擬索引內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL數(shù)據(jù)庫外鍵?foreing?key

    MySQL數(shù)據(jù)庫外鍵?foreing?key

    這篇文章主要介紹了MySQL數(shù)據(jù)庫外鍵?foreing?key,外鍵表示了兩個(gè)實(shí)體之間的聯(lián)系,更多相關(guān)介紹需要的小伙伴可以參考一下
    2022-06-06
  • Mysql 5.7.18 解壓版下載安裝及啟動(dòng)mysql服務(wù)的圖文詳解

    Mysql 5.7.18 解壓版下載安裝及啟動(dòng)mysql服務(wù)的圖文詳解

    這篇文章主要介紹了Mysql 5.7.18 解壓版下載安裝及啟動(dòng)mysql服務(wù)的圖文詳解,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-05-05
  • MySQL定位長事務(wù)(Identify Long Transactions)的實(shí)現(xiàn)

    MySQL定位長事務(wù)(Identify Long Transactions)的實(shí)現(xiàn)

    在MySQL的運(yùn)行中,經(jīng)常會(huì)遇到一些長事務(wù),本文主要介紹了MySQL定位長事務(wù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-09-09
  • Mysql全文搜索match against的用法

    Mysql全文搜索match against的用法

    全文檢索在 MySQL 中就是一個(gè) FULLTEXT 類型索引。FULLTEXT 索引用于 MyISAM 表,可以在 CREATE TABLE 時(shí)或之后使用 ALTER TABLE 或 CREATE INDEX 在 CHAR、 VARCHAR 或 TEXT 列上創(chuàng)建
    2011-10-10
  • mysql滑動(dòng)訂單問題原理與解決方法實(shí)例分析

    mysql滑動(dòng)訂單問題原理與解決方法實(shí)例分析

    這篇文章主要介紹了mysql滑動(dòng)訂單問題原理與解決方法,結(jié)合實(shí)例形式分析了mysql滑動(dòng)訂單的問題的基本原理、解決方法與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-12-12
  • MySQL自連接與子查詢方式

    MySQL自連接與子查詢方式

    這篇文章主要介紹了MySQL自連接與子查詢方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • MySql?字符集不同導(dǎo)致?left?join?慢查詢的問題解決

    MySql?字符集不同導(dǎo)致?left?join?慢查詢的問題解決

    當(dāng)兩個(gè)表的字符集不一樣,在使用字符型字段進(jìn)行表連接查詢時(shí),就需要特別注意下查詢耗時(shí)是否符合預(yù)期,本文主要介紹了MySql?字符集不同導(dǎo)致?left?join?慢查詢的問題解決,感興趣的可以了解一下
    2024-05-05
  • VS2022連接數(shù)據(jù)庫MySQL并進(jìn)行基本的表的操作指南

    VS2022連接數(shù)據(jù)庫MySQL并進(jìn)行基本的表的操作指南

    鑒于MySQL數(shù)據(jù)庫的流行與強(qiáng)大,決定多學(xué)習(xí)使用,下面這篇文章主要給大家介紹了關(guān)于VS2022連接數(shù)據(jù)庫MySQL并進(jìn)行基本的表的操作指南,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • mysql8關(guān)閉binlog并清空Binlog的方法

    mysql8關(guān)閉binlog并清空Binlog的方法

    這篇文章主要介紹了mysql8關(guān)閉binlog并清空Binlog,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • 詳解MySQL中的NULL值

    詳解MySQL中的NULL值

    這篇文章主要介紹了MySQL中的NULL值的相關(guān)知識(shí),是MySQL入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05

最新評(píng)論