這是我mysql5.6解壓版的安裝過程,和5.7應(yīng)該是一樣的
成都創(chuàng)新互聯(lián)專注于企業(yè)營銷型網(wǎng)站、網(wǎng)站重做改版、宣化網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5建站、商城網(wǎng)站制作、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為宣化等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
在官網(wǎng)下載mysql 5.6 windows64位軟件
解壓到C:\Program Files\MySQL\下(自己創(chuàng)建目錄MYSQL\)
修改環(huán)境變量:我的電腦-屬性-高級(jí)-環(huán)境變量
選擇PATH,在其后面添加: 你的mysql bin文件夾的路徑 (如:;C:\Program Files\MYSQL\mysql-5.6.27-winx64\bin )
修改配置文件C:\Program Files\MYSQL\mysql-5.6.27-winx64\my-default.ini
在其中修改或添加配置:
[mysqld]
basedir=C:\Program Files\MYSQL\mysql-5.6.27-winx64(mysql所在目錄)
datadir=C:\Program Files\MYSQL\mysql-5.6.27-winx64\data (mysql所在目錄\data)
以管理員身份運(yùn)行cmd 輸入cd C:\Program Files\MYSQL\mysql-5.6.27-winx64\bin
輸入mysqld -install 繼續(xù)在cmd中輸入:net start mysql
服務(wù)啟動(dòng)成功之后,就可以登錄了,輸入mysql -u root -p(第一次登錄沒有密碼,直接按回車過),登錄成功!
創(chuàng)建aa賬戶并授權(quán) grant all on *.* to aa@'%' identified by 'password';
flush privileges;
打開配置文件my-default.ini看到里面的basedir和datadir是沒有打開的,前面有#,路徑也是以“……”表示。
去掉basedir和datadir前面的#
basedir添加的是MySQL的解壓路徑;
datadir添加的是MySQL的data文件夾路徑。
接下來就是配置環(huán)境變量,首先先把bin的地址復(fù)制:打開MySQL解壓文件夾里面的bin文件夾,將鼠標(biāo)點(diǎn)擊到地址欄選中,復(fù)制地址(這樣做的目的是防止打字出錯(cuò),而且方便)。
把剛剛復(fù)制的bin路徑添加的Path變量值,具體方法是:打開電腦桌面:計(jì)算機(jī)—右鍵—高級(jí)系統(tǒng)設(shè)置—高級(jí)—環(huán)境變量(N)—修改Path;就是將復(fù)制的地址欄粘貼到最后。(這里注意的是不同的路徑之間用英文的“;”分開)確定,退出。
打開dos界面,具體方法是:在開始輸入cmd.exe回車。
這一步很重要,初始化MySQL,需要進(jìn)到MySQL解壓目錄下的bin文件:具體方法是:這里以F盤下的路徑為例:
F:回車
F:cd phptools\MySQL\bin(回車)
F:\phptools\MySQL\binmysqld --initialize-insecure --user=mysql(回車,這一步就是初始化)
當(dāng)出現(xiàn)Service successfully installed表示MySQL服務(wù)已經(jīng)安裝了,就差啟動(dòng)了。
啟動(dòng)MySQL在之前的F:\phptools\MySQL\bin輸入:net start mysql;
出現(xiàn):MySQL服務(wù)啟動(dòng)成功,表示這一次配置完畢。
接下來就是開啟新版的MySQL之旅了,打開dos界面,輸入mysql -u root -p然后回車,提示輸入密碼,如果沒有密碼就回車。
查看版本。至此MySQL5.7.10安裝完畢。
我們都知道where條件如果在字段上帶了函數(shù)就不會(huì)去走索引,不好優(yōu)化,無意間了解到mysql一個(gè)新特性--虛擬列,專門處理這塊問題的,下面一起來了解下吧~
在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)勢,因此,MySQL 5.7中,不指定Generated Column的類型,默認(rèn)是Virtual Column。
如果需要Stored Generated Golumn的話,可能在Virtual Generated Column上建立索引更加合適。綜上,一般情況下,都使用Virtual Generated Column,這也是MySQL默認(rèn)的方式
假設(shè)有一個(gè)表,其中包含一個(gè) date 類型的列 `SimpleDate` date
SimpleDate 是一個(gè)常用的查詢字段,并需要對(duì)其執(zhí)行日期函數(shù),例如
此時(shí)的問題是 即使對(duì) SimpleDate 建立索引,這個(gè)查詢語句也無法使用,因?yàn)槿掌诤瘮?shù)阻止了索引。
為了提高查詢效率,通常要進(jìn)行額外的操作,例如新建一個(gè)字段 SimpleDate_dayofweek,存放 dayofweek(SimpleDate) 的計(jì)算結(jié)果,然后對(duì)這列創(chuàng)建索引,SimpleDate_dayofweek 的值需要程序?qū)懭耄缡褂糜|發(fā)器,在 SimpleDate 有變動(dòng)時(shí)更新這樣查詢就可以改為
這么做的好處是提高了查詢性能,可以使用 SimpleDate_dayofweek 列的索引了,但又帶來了其他麻煩,例如
虛擬列 Generated Columns 就是用來解決這個(gè)問題的,可以增加一個(gè)可被索引的列,但實(shí)際上并不存在于數(shù)據(jù)表中,下面用一個(gè)實(shí)驗(yàn)來說明下:
需求:為了實(shí)現(xiàn)對(duì)json數(shù)據(jù)中部分?jǐn)?shù)據(jù)的索引查詢,考慮用MySQL5.7中的虛擬列功能
1、創(chuàng)建表
2、準(zhǔn)備數(shù)據(jù)
3、構(gòu)建姓名的虛擬列
4、構(gòu)建索引
5、測試是否用到索引
可以看出用了索引了
6、插入新數(shù)據(jù)
此時(shí)的表的結(jié)構(gòu)由于多出了user_name這一虛擬列,再插入別的數(shù)據(jù)要注意在表后指明插入列(不能給虛擬列插入數(shù)據(jù))
做完發(fā)現(xiàn)這個(gè)實(shí)驗(yàn)好像不是那么好理解...應(yīng)該對(duì)比一下加不加虛擬列有沒走索引,可能會(huì)更容易讓大家理解的...后面會(huì)分享更多devops和DBA方面的內(nèi)容,感興趣的朋友可以關(guān)注一下~