共計 1857 個字符,預計需要花費 5 分鐘才能閱讀完成。
本篇內容主要講解“mysql 索引的重要性及實例使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓丸趣 TV 小編來帶大家學習“mysql 索引的重要性及實例使用”吧!
一,索引的重要性
索引用于快速找出在某個列中有一特定值的行。不使用索引,MySQL 必須從第 1 條記錄開始然后讀完整個表直到找出相關的行。表越大,花費的時間越多。如果表中查詢的列有一個索引,MySQL 能快速到達一個位置去搜尋到數據文件的中間,沒有必要看所有數據。注意如果你需要訪問大部分行,順序讀取要快得多,因為此時我們避免磁盤搜索。
假如你用新華字典來查找“張”這個漢字,不使用目錄的話,你可能要從新華字典的第一頁找到最后一頁,可能要花二個小時。字典越厚呢,你花的時間就越多。現在你使用目錄來查找“張”這個漢字,張的首字母是 z,z 開頭的漢字從 900 多頁開始,有了這條線索,你查找一個漢字可能只要一分鐘,由此可見索引的重要性。但是索引建的是不是越多越好呢,當然不是,如果一本書的目錄分成好幾級的話,我想你也會暈的。
二,準備工作
// 準備二張測試表
CREATE TABLE `test_t` (
- `id` int(11) NOT NULL auto_increment,
- `num` int(11) NOT NULL default 0,
- `d_num` varchar(30) NOT NULL default 0,
- PRIMARY KEY (`id`)
- ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Query OK, 0 rows affected (0.05 sec)
mysql CREATE TABLE `test_test` (
- `id` int(11) NOT NULL auto_increment,
- `num` int(11) NOT NULL default 0,
- PRIMARY KEY (`id`)
- ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Query OK, 0 rows affected (0.05 sec)
// 創建一個存儲過程,為插數據方便
mysql delimiter |
mysql create procedure i_test(pa int(11),tab varchar(30))
- begin
- declare max_num int(11) default 100000;
- declare i int default 0;
- declare rand_num int;
- declare double_num char;
-
- if tab != test_test then
- select count(id) into max_num from test_t;
- while i pa do
- if max_num 100000 then
- select cast(rand()*100 as unsigned) into rand_num;
- select concat(rand_num,rand_num) into double_num;
- insert into test_t(num,d_num)values(rand_num,double_num);
- end if;
- set i = i +1;
- end while;
- else
- select count(id) into max_num from test_test;
- while i pa do
- if max_num 100000 then
- select cast(rand()*100 as unsigned) into rand_num;
- insert into test_test(num)values(rand_num);
- end span >
到此,相信大家對“mysql 索引的重要性及實例使用”有了更深的了解,不妨來實際操作一番吧!這里是丸趣 TV 網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!