91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL索引怎么使用

發布時間:2020-12-14 09:59:48 來源:億速云 閱讀:297 作者:小新 欄目:MySQL數據庫

小編給大家分享一下MySQL索引怎么使用,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

MySQL索引的使用實例


    • 一. 慢查詢日志

    • 二. 查詢分析器——explain

    • 三. 索引的基本使用

    • 四. 復合索引

    • 五. 覆蓋索引

一. 慢查詢日志

//查看是否開啟慢查詢日志
mysql> show variables like '%slow%';//臨時開啟慢查詢日志
mysql> set global slow_query_log=ON;//查看是否開啟慢查詢日志
mysql> show variables like '%slow%';

MySQL索引怎么使用

//查詢超過多少時間就可以記錄,上面是如果超過10秒就要記錄
mysql> show variables like '%long%';//改成一秒,如果超過一秒就寫到慢日志里面去(一般一秒是最好的)mysql> set long_query_time=1;//查看日記存儲方式,默認FILE
mysql> show variables like '%log_output%';// 慢查詢日志文件所在位置
mysql> show variables like '%datadir%';

MySQL索引怎么使用

//響應時間是3秒,超過了原先設定的一秒
mysql> select sleep(3);

MySQL索引怎么使用
我們去文件夾里面查看時發現它已經被存入慢查詢日記里面

MySQL索引怎么使用

這部分寫明了如何通過慢日志找出比較慢的SQL,后面部分要說為什么慢,如何能更快一點。

二. 查詢分析器——explain

作用:通過這個可以知道查看sql慢在哪里,需要朝那些方面優化

列:我們創建一個employee數據表

create table employee(
	id int not null auto_increment primary key,
	name varchar(30) comment '姓名',
	sex varchar(1) comment '性別',
	salary int comment '薪資(元)',
	dept varchar(30) comment '部門');insert into employee(name, sex, salary, dept) values('張三', '男', 5500, '部門A');insert into employee(name, sex, salary, dept) values('李潔', '女', 4500, '部門C');insert into employee(name, sex, salary, dept) values('李小梅', '女', 4200, '部門A');insert into employee(name, sex, salary, dept) values('歐陽輝', '男', 7500, '部門C');insert into employee(name, sex, salary, dept) values('李芳', '女', 8500, '部門A');insert into employee(name, sex, salary, dept) values('張江', '男', 6800, '部門A');insert into employee(name, sex, salary, dept) values('李四', '男', 12000, '部門B');insert into employee(name, sex, salary, dept) values('王五', '男', 3500, '部門B');insert into employee(name, sex, salary, dept) values('馬小龍', '男', 6000, '部門A');insert into employee(name, sex, salary, dept) values('龍五', '男', 8000, '部門B');insert into employee(name, sex, salary, dept) values('馮小芳', '女', 10000, '部門C');insert into employee(name, sex, salary, dept) values('馬小花', '女', 4000, '部門B');insert into employee(name, sex, salary, dept) values('柳峰', '男', 8800, '部門A');

MySQL索引怎么使用

//通過explain解讀他,后面加一個\G便于閱讀
mysql> explain select * from employee where name='柳峰'\G;//掃描快捷
mysql> explain select * from employee where id=13\G;

MySQL索引怎么使用

效果:如下圖,可以看之前為什么那么慢,需要四秒響應時間

MySQL索引怎么使用

三. 索引的基本使用

mysql> show index from employee\G;//主鍵會默認建一個id索引

MySQL索引怎么使用

創建索引 效率提升

//查詢分析
mysql> explain select * from employee where name='柳峰';//創建普通索引
mysql> create index idx_name on employee(name);

MySQL索引怎么使用

//刪除
mysql> drop index idx_name on employee;

MySQL索引怎么使用
老師 事列:
MySQL索引怎么使用

如過用like檢索,效率還是不變,所以要看你怎么用

MySQL索引怎么使用

四. 復合索引

//查的時候可以看到一個主鍵索引
mysql> show index from employee\G;

MySQL索引怎么使用

目前是all全局掃描

select * from employee where name ='柳峰';//查詢分析
explain select * from employee where name ='柳峰'\G;

MySQL索引怎么使用

創建索引

//創建索引
create index idx_name_salary_dept on employee(name,salary,dept);//查詢分析
explain select * from employee where name ='柳峰'\G;

MySQL索引怎么使用

驗證有name就能索引

// name和salary
mysql> explain select * from employee where name ='柳峰' and salary=8800\G;//name和dept
mysql> explain select * from employee where name ='柳峰' and dept='部門A'\G;

MySQL索引怎么使用

沒有name就不能使用索引

mysql> explain select * from employee where  salary=8800;mysql> explain select * from employee where  dept='部門A';

MySQL索引怎么使用

五. 覆蓋索引

按照上面步驟,我們可以看到四個索引,第一個是主鍵索引,后面是復合索引name_salary_dept

mysql> show index from employee;

MySQL索引怎么使用
如何觸發

我們用id作為查詢數據

mysql> select * from employee;mysql> select * from employee where id =11;

MySQL索引怎么使用

只查id

mysql> explain select id from employee  employee where id=11\G;mysql> explain select id from employee\G;

MySQL索引怎么使用

//查name,salary
mysql> explain select name,salary from employee;//查name,salary,dept
mysql> explain select name,salary,dept from employee;//因為沒有sxe條件,所以只能做全部掃描type為null
mysql> explain select name,sex,salary,dept from employee;

MySQL索引怎么使用

看完了這篇文章,相信你對MySQL索引怎么使用有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

剑河县| 金溪县| 阜宁县| 昭通市| 阆中市| 内乡县| 呼和浩特市| 泰来县| 武强县| 类乌齐县| 册亨县| 寿宁县| 保德县| 商南县| 界首市| 罗甸县| 酒泉市| 枣强县| 锡林浩特市| 东乌| 江华| 平潭县| 齐齐哈尔市| 大足县| 西宁市| 阿合奇县| 和顺县| 松阳县| 武强县| 大连市| 牡丹江市| 北宁市| 武乡县| 泰和县| 海门市| 棋牌| 万源市| 新乡县| 洪泽县| 鄂温| 云梦县|