±à¼ÍƼö: |
ÎÄÕ½²½âÊý¾Ý½á¹¹Hash¡¢Æ½ºâ¶þ²æÊ÷¡¢BÊ÷¡¢B+Ê÷Çø±ð
£¬MyisamÓëInnodb B+Ê÷µÄÇø±ð
£¬MySQLÖеÄË÷ÒýʲôÊý¾Ý½á¹¹
£¬B+Ê÷ÖеĽڵ㵽µ×´æ·Å¶àÉÙ,Ï£Íû¶ÔÄúÓÐËù°ïÖú,
±¾ÎÄÀ´×Ôcsdn£¬ÓÉ»ðÁú¹ûÈí¼þDelores±à¼¡¢ÍƼö¡£ |
|






mysql ÓÅ»¯Èý²¿·Ö £ºË÷ÒýµÄÓÅ»¯£¬sql Âý²éѯµÄÓÅ»¯£¬±íµÄÓÅ»¯
MySQLÊý¾Ý¿âÅäÖÃÂý²éѯ
²ÎÊý˵Ã÷:
slow_query_log Âý²éѯ¿ªÆô״̬
slow_query_log_file Âý²éѯÈÕÖ¾ ´æ·ÅµÄλÖã¨Õâ¸öĿ¼ÐèÒªMySQLµÄ ÔËÐÐÕʺŵĿÉдȨÏÞ£¬Ò»°ãÉèÖÃΪ MySQLµÄÊý¾Ý´æ·ÅĿ¼£©
long_query_time ²éѯ³¬¹ý¶àÉÙÃë²Å¼Ç¼
1.²éѯÂý²éѯÅäÖÃ
show variables like 'slow_query%';
2.²éѯÂý²éѯÏÞÖÆÊ±¼ä
show variables like 'long_query_time';
3.½« slow_query_log È«¾Ö±äÁ¿ÉèÖÃΪ¡°ON¡±×´Ì¬
set global slow_query_log='ON';
4.²éѯ³¬¹ý1Ãë¾Í¼Ç¼
set global long_query_time=1;
Ò»°ãÂý²éѯÈÕÖ¾ÊÇÒ»¸öËæ»úÊý×Ö¼Ó×ÖĸµÄ Èç¹ûÐèÒªµ÷Õû²âÊÔ¿ÉÒÔ×öÈçÏ´¦Àí
set global slow_query_log_file ="/var/lib/mysql/localhost-slow.log";
5.²éѯcat /var/lib/mysql /localhost-slow.log
service mysqld restart |
²âÊÔÂý²éѯÓï¾ä
CREATE TABLE
`user_details` (
`id` int(11),
`user_name` varchar(50) DEFAULT NULL,
`user_phone` varchar(11) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE `user_details` ADD INDEX user_name_index
( `user_name` )insert into user_details values (1,'testliuliu1','15921009245');
insert into user_details values(2,'testliuliu2','15921009245');
insert into user_details values(3,'testliuliu3','15921009245');
insert into user_details values(4,'testliuliu4','15921009245');
insert into user_details values(5,'testliuliu5','15921009245');
insert into user_details values(6,'testliuliu6','15921009245'); EXPLAIN
select * from user_details WHERE id=1
EXPLAIN select * from user_details WHERE id=1
and user_name='yushengjun1';
EXPLAIN select * from user_details WHERE id like
'%sss'
EXPLAIN select * from user_details WHERE id like
'%1'
EXPLAIN select * from user_details WHERE user_name
like '1%'
EXPLAIN select * from user_details WHERE user_name
=1;
EXPLAIN select * from user_details
WHERE user_name ='1'; |
²âÊÔÁªºÏË÷ÒýÓï¾ä
CREATE TABLE
`user_details1`(
`id` int(11),
`user_name` varchar(50) DEFAULT NULL,
`user_phone` varchar(11) DEFAULT NULL,
PRIMARY KEY (id,user_name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;insert into
user _details1 values (1,'testliuliu1','15921009245');
insert into user_details1 values(1,'testliuliu2','15921009245');
insert into user_details1 values(2,'testliuliu1','15921009245');
insert into user_details1 values(2,'testliuliu2','15921009245');
insert into user_details1 values(3,'testliuliu1','15921009245');
insert into user_details1 values(3,'testliuliu2','15921009245'); EXPLAIN
select * from user_details1 WHERE id=1
EXPLAIN select * from user_details1 WHERE id=1
and user_name='testliuliu1';
EXPLAIN select * from user_details1 WHERE user_name='testliuliu1';
EXPLAIN select * from user_details1 WHERE user_name='testliuliu1'
and id=1
(1,testliuliu1 1,testliuliu2), (2,testliuliu1 2,testliuliu2), (3,testliuliu1
3,testliuliu2) ²âÊÔMYISAMÒýÇæ
CREATE TABLE `user_details2` (
`id` int(11),
`user_name` varchar(50) DEFAULT NULL,
`user_phone` varchar(11) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;insert into
user_details2 values(1,'testliuliu1','15921009245');
insert into user_details2 values(2,'testliuliu2','15921009245');
insert into user_details2 values(3,'testliuliu3','15921009245');
insert into user_details2 values(4,'testliuliu4','15921009245');
insert into user_details2 values(5,'testliuliu5','15921009245');
insert into user_details2 values(6,'testliuliu6','15921009245'); |
×ܽá
È«±íɨÃ裺»á½«ÕûÕűíÊý¾ÝÈ«²¿É¨ÃèÒ»±é£¬ÕâÑùµÄ»°Ð§Âʷdz£µÍ¡£
HashË÷Òý
Óŵ㣺ͨ¹ý×ֶεÄÖµ¼ÆËãµÄhashÖµ£¬¶¨Î»Êý¾Ý·Ç³£¿ì¡£
ȱµã£º²»Ö§³Ö·¶Î§²éѯ
Ϊʲô²»Ö§³Ö·¶Î§²éѯ£¿
ÒòΪµ×²ãÊý¾Ý½á¹¹ÊÇÉ¢Áеģ¬ÎÞ·¨½øÐбȽϴóС
ƽºâ¶þ²æÊ÷ »áȡһ¸öÖмäÖµ£¬ÖмäÖµ×ó±ß³ÆÎª×ó×ÓÊ÷ £¬ÖмäÖµÓұ߳ÆÎªÓÒ×ÓÊ÷ ¡£
×ó×ÓÊ÷±ÈÖмäС£¬ÓÒ×ÓÊ÷±ÈÖмäÖµ¡£
ƽºâ¶þ²æÊ÷ ²éѯÔÀí
¼ÙÉè²éѯ10 £¨ÐèÒª¾Àú4´ÎIO²Ù×÷£©
1´Î ´ÓÓ²ÅÌÖжÁÈ¡4 £¨Äڴ棩£¬ÅжÏÏÂ10>4£¬È¡ÓÒÖ¸Õë
2´Î ´ÓÓ²ÅÌÖжÁÈ¡8 £¨Äڴ棩£¬ÅжÏÏÂ10>8£¬È¡ÓÒÖ¸Õë
3´Î ´ÓÓ²ÅÌÖжÁÈ¡9 £¨Äڴ棩£¬ÅжÏÏÂ10>£¬È¡ÓÒÖ¸Õë
4´Î ´ÓÓ²ÅÌÖжÁÈ¡10 £¨Äڴ棩£¬ÅжÏÏÂ10=10£¬¶¨Î»µ½Êý¾Ý
ƽºâ¶þ²æÊ÷ ²éѯЧÂÊ»¹¿ÉÒÔ£¬È±µã£ºËäȻ֧³Ö·¶Î§²éѯ£¬µ«ÊÇ»ØÐý²éѯЧÂʵ͡£
¹æÂÉ£ºÈç¹ûÊ÷µÄ¸ß¶ÈÔ½¸ß£¬ÄÇô²éѯIO´ÎÊý»áÔ½¶à¡£
ÈçºÎÈ¥¼õÉÙ²éѯIO´ÎÊý£¿
BÊ÷ÔÚÆ½ºâ¶þ²æÊ÷ÖУ¬¼õÉÙÊ÷µÄ¸ß¶È
½áÂÛ£ºBÊ÷±Èƽºâ¶þ²æÊ÷¼õÉÙÁËÒ»´ÎIO²Ù×÷
BÊ÷²éѯЧÂÊ±ÈÆ½ºâ¶þ²æÊ÷ЧÂÊÒª¸ß£¬ÒòΪBÊ÷µÄ½ÚµãÖпÉÒÔÓжà¸öÔªËØ£¬´Ó¶ø¼õÉÙÊ÷µÄ¸ß¶È£¬¼õÉÙIO²Ù×÷£¬´Ó¶øÌá¸ß²éѯЧÂÊ£¬È±µã£º·¶Î§²éѯЧÂÊ»¹ÊDZȽϵ͡£
B+Ê÷ ½â¾ö·¶Î§²éѯÎÊÌâ¡¢¼õÉÙIO²éѯµÄ²Ù×÷¡£
B+Ê÷Ïà±ÈBÊ÷£¬ÐÂÔöÒ¶×Ó½ÚµãÓë·ÇÒ¶×Ó½Úµã¹ØÏµ£¬Ò¶×Ó½ÚµãÖаüº¬ÁËkeyºÍvalue£¬·ÇÒ¶×Ó½ÚµãÖÐÖ»Êǰüº¬ÁËkey£¬²»°üº¬value¡£
B+Ê÷Ëã·¨£º ͨ¹ý¼Ì³ÐÁËBÊ÷µÄÌØÕ÷£¬B+Ê÷Ïà±ÈBÊ÷£¬ÐÂÔöÒ¶×Ó½ÚµãÓë·ÇÒ¶×Ó½Úµã¹ØÏµ£¬Ò¶×Ó½ÚµãÖаüº¬ÁËkeyºÍvalue£¬·ÇÒ¶×Ó½ÚµãÖÐÖ»Êǰüº¬ÁËkey£¬²»°üº¬value¡£Í¨¹ý·ÇÒ¶×Ó½Úµã²éѯҶ×Ó½Úµã»ñÈ¡¶ÔÓ¦µÄvalue£¬ËùÓÐÏàÁÚµÄÒ¶×Ó½Úµã°üº¬·ÇÒ¶×ӽڵ㣬ʹÓÃÁ´±í½øÐнáºÏ£¬ÓÐÒ»¶¨Ë³ÐòÅÅÐò£¬´Ó¶ø·¶Î§²éѯЧÂʷdz£¸ß¡£
ȱµã£ºÒòΪÓÐÈßÓà½ÚµãÊý¾Ý£¬»á±È½ÏÕ¼ÄÚ´æ¡£
|