十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
本篇內(nèi)容主要講解“MySQL索引的重要性及實(shí)例使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“mysql索引的重要性及實(shí)例使用”吧!
站在用戶的角度思考問題,與客戶深入溝通,找到新?lián)峋W(wǎng)站設(shè)計(jì)與新?lián)峋W(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都做網(wǎng)站、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、申請域名、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋新?lián)岬貐^(qū)。
一,索引的重要性
索引用于快速找出在某個(gè)列中有一特定值的行。不使用索引,MySQL必須從第1條記錄開始然后讀完整個(gè)表直到找出相關(guān)的行。表越大,花費(fèi)的時(shí)間越多。如果表中查詢的列有一個(gè)索引,MySQL能快速到達(dá)一個(gè)位置去搜尋到數(shù)據(jù)文件的中間,沒有必要看所有數(shù)據(jù)。注意如果你需要訪問大部分行,順序讀取要快得多,因?yàn)榇藭r(shí)我們避免磁盤搜索。
假如你用新華字典來查找“張”這個(gè)漢字,不使用目錄的話,你可能要從新華字典的第一頁找到最后一頁,可能要花二個(gè)小時(shí)。字典越厚呢,你花的時(shí)間就越多。現(xiàn)在你使用目錄來查找“張”這個(gè)漢字,張的首字母是z,z開頭的漢字從900多頁開始,有了這條線索,你查找一個(gè)漢字可能只要一分鐘,由此可見索引的重要性。但是索引建的是不是越多越好呢,當(dāng)然不是,如果一本書的目錄分成好幾級的話,我想你也會暈的。
二,準(zhǔn)備工作
//準(zhǔn)備二張測試表
> 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)
//創(chuàng)建一個(gè)存儲過程,為插數(shù)據(jù)方便
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 http://m.jiaotiyi.com/article/jejcps.html