ÕâÊÇÒÔ¶ÁΪÖ÷µÄÏßÉÏ¿â
root@read 02:28:07>show status like ‘Handler_read%’;
+———————–+——-+
| Variable_name | Value |
+———————–+——-+
| Handler_read_first | 0 |
| Handler_read_key | 0 |
| Handler_read_next | 0 |
| Handler_read_prev | 0 |
| Handler_read_rnd | 0 |
| Handler_read_rnd_next | 61 |
+———————–+——-+
6 rows in set (0.41 sec)
Handler_read_first ´ú±í¶ÁÈ¡Ë÷ÒýÍ·µÄ´ÎÊý£¬Èç¹ûÕâ¸öÖµºÜ¸ß£¬ËµÃ÷È«Ë÷Ò ......
Õë¶Ôselect * from table where col1 > number order by col2 desc¡£
Æäʵ°´ÕÕ³£¹æµÄ·½·¨¿ÉÒÔÕâÑùÉè¼Æ£ºkey(col1, col2)
µ«ÊÇÕâÖÖ°ì·¨ÔÚmysqlÀï²»ËãÊÇÀíÏëµÄ£¬whereÌõ¼þÀïÏÞ¶¨Ë÷Òýǰ²¿·ÖÊÇÒ»¸ö·¶Î§µÄÇé¿öϺóÃæµÄorder by»¹ÊÇ»áÓÐfilesort¡£Èç¹ûwhereÌõ¼þÀïÏÞ¶¨Ë÷Òýǰ²¿·ÖÊÇÒ»¸ö³£Á¿£¬ÄÇôorder by¾Í»áÓÐЧÀûÓÃË÷Òý¡£ÀýÈ磺select * from table where col1 = number order by col2 desc£¬explainµÄ½á¹û¾Í²»´í¡£
ΪÁËÈÃËüÄܹ»ÀûÓÃÉÏË÷Òý²¢ÇÒÏû³ýfilesort£¬¿ÉÒÔÕâÑùÉè¼Æ
Ë÷Òý£ºkey(col2,col1);
select * from table where col2 > min_value and col1 > number order by col2 desc;
ÕâÀïwhereÌõ¼þÀïͬʱִÐÐÁËË÷ÒýµÄÁ½¸öÁУ¬²¢ÇÒΪÁ˱£Ö¤Âß¼Ò»Ö£¬¶Ôcol2ÁеÄÏÞ¶¨Ìõ¼þµÈЧÓÚÎÞÏÞ¶¨¡£
ÕâÑùmysql¾ÍÄܺܺõÄÀûÓÃË÷ÒýÁË¡£Õâ¸ö¼¼ÇÉÔÚmysql high performance2ÀïÒ²ÓÐÌá¹ý. ......
ǰһֱûעÒâÕâÒ»µã£¬Í»È»Ò»ÉÁÄîÏëÆðÀ´£¬ÏÂÃæßëß룺
±È·½ËµÓÐÒ»¸öÎÄÕÂ±í£¬ÎÒÃÇҪʵÏÖij¸öÀà±ðϰ´Ê±¼äµ¹ÐòÁбíÏÔʾ¹¦ÄÜ£º
SELECT * from articles WHERE category_id = … ORDER BY created DESC LIMIT …
ÕâÑùµÄ²éѯºÜ³£¼û£¬»ù±¾Éϲ»¹ÜʲôӦÓÃÀï¶¼ÄÜÕÒ³öÒ»´ó°ÑÀàËÆµÄSQLÀ´£¬Ñ§ÔºÅɵĶÁÕß¿´µ½ÉÏÃæµÄSQL£¬¿ÉÄÜ»á˵SELECT *²»ºÃ£¬Ó¦¸Ã½ö½ö²éѯÐèÒªµÄ×ֶΣ¬ÄÇÎÒÃǾÍË÷ÐÔ³¹µ×µã£¬°ÑSQL¸Ä³ÉÈçϵÄÐÎʽ£º
SELECT id from articles WHERE category_id = … ORDER BY created DESC LIMIT …
ÎÒÃǼÙÉèÕâÀïµÄidÊÇÖ÷¼ü£¬ÖÁÓÚÎÄÕµľßÌåÄÚÈÝ£¬¿ÉÒÔ¶¼±£´æµ½memcachedÖ®ÀàµÄ¼üÖµÀàÐ͵Ļº´æÀÈç´ËÒ»À´£¬Ñ§ÔºÅɵĶÁÕßÃÇÓ¦¸ÃÌô²»³öʲô벡À´ÁË£¬ÏÂÃæÎÒÃǾͰ´ÕâÌõSQLÀ´¿¼ÂÇÈçºÎ½¨Á¢Ë÷Òý£º
²»¿¼ÂÇÊý¾Ý·Ö²¼Ö®ÀàµÄ¾ßÌåÇé¿ö£¬ÈκÎÒ»¸öºÏ¸ñµÄWEB¿ª·¢ÈËÔ±¶¼ÖªµÀÀàËÆÕâÑùµÄSQL£¬Ó¦¸Ã½¨Á¢Ò»¸ö”category_id, created“¸´ºÏË÷Òý£¬µ«ÕâÊÇ×î¼Ñ´ð°¸²»£¿²»¼ûµÃ£¬ÏÖÔÚÊÇ»ØÍ·¿´¿´±êÌâµÄʱºòÁË£ºMySQLÀィÁ¢Ë÷ÒýÓ¦¸Ã¿¼ÂÇÊý¾Ý¿âÒýÇæµÄÀàÐÍ£¡
Èç¹ûÎÒÃǵÄÊý¾Ý¿âÒýÇæÊÇInnoDB£¬ÄÇô½¨Á¢”category_id, created“¸´ºÏË÷ÒýÊÇ×î¼Ñ´ð°¸¡£ÈÃÎÒÃÇ¿´¿´InnoDBµ ......
MySQL MyIsam ´æ´¢ÒýÇæÔÚ´´½¨Ë÷ÒýµÄʱºò£¬Ë÷Òý¼ü³¤¶ÈÊÇÓÐÒ»¸ö½ÏΪÑϸñµÄ³¤¶ÈÏÞÖÆµÄ£¬ËùÓÐË÷Òý¼ü×î´ó³¤¶È×ܺͲ»Äܳ¬¹ý1000£¬¶øÇÒ²»ÊÇʵ¼ÊÊý¾Ý³¤¶ÈµÄ×ܺͣ¬¶øÊÇË÷Òý¼ü×ֶζ¨Ò峤¶ÈµÄ×ܺ͡£ÏÂÃæ×ö¸ö¼òµ¥µÄ²âÊÔ£¬¼Ç¼һÏ¡£
root@sky:~# mysql -u sky -p -h127.0.0.1
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 44
Server version: 5.0.51a-log MySQL Community Server (GPL)
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
sky@127.0.0.1 : (none) 05:23:08> use test;
Database changed
sky@127.0.0.1 : test 05:23:11>
sky@127.0.0.1 : test 05:23:12>
ÏÈ´´½¨Ò»¸öMyIsam±í£¬×Ö·û¼¯Ñ¡Ôñlatin1£¬Èý¸ö×ֶξùÉèÖÃΪvarchar 255£¬£º
sky@127.0.0.1 : test 05:23:12> create table test_ind
-> (a varchar(255),
-> b varchar(255),
-> c varchar(255)
-> ) engine=myisam charset=latin1;
Query OK, 0 rows affected (0.01 sec)
´´½¨Ð§¹û£º
sky@127.0.0.1 : test 05:23:32> show create table test_ind\G
***** ......
Àý×Ó£º½«cdb_pms±ísubject×Ö¶ÎÖеÄWelcom toÌæ»»³É »¶Ó¹âÁÙ
UPDATE `cdb_pms`
SET `subject` = REPLACE(`subject`, ¡®Welcome to¡¯, ¡®»¶Ó¹âÁÙ¡¯)
WHERE INSTR(`subject`,¡¯Welcome to¡¯) < 0 Ìæ»»cdb_posts±íµÄmessage×ֶΣ¬½«¡°viewthread.php?tid=3989¡±Ìæ»»³É¡°viewthread.php?tid=16546¡± UPDATE `cdb_posts`
SET `message`= REPLACE(`message`, ¡®viewthread.php?tid=3989¡ä, ¡®viewthread.php?tid=16546¡ä)
WHERE INSTR(`message`,¡¯viewthread.php?tid=3989¡ä) < 0 ; ɾ³ýËùÓеĿոñ
UPDATE `es_product` SET `pro_pub_time` = TRIM(`pro_pub_time`) ɾ³ýËùÓб¥º¬¡¯['»òÕß']¡®»òÕß¡¯.'µÄ×Ö·û
UPDATE `es_product` SET `pro_pub_time` = REPLACE(`pro_pub_time`, ¡®[','') WHERE INSTR(`pro_pub_time`,'[') < 0
UPDATE `es_product` SET `pro_pub_time` = REPLACE(`pro_pub_time`, ']¡®,¡±) WHERE INSTR(`pro_pub_time`,¡¯]') < 0
UPDATE `es_product` SET `pro_pub_time` = REPLACE(`pro_pub_time`, ¡®.¡¯,'-¡¯) WHERE INSTR(`pro_pub_time`,¡¯.') < 0 Ìæ»»ËùÓк¬ÖÐÎÄ¡¯-'µÄΪӢÎÄ¡¯-¡¯
UPDATE `es_prod ......
±íÃûΪtableµÄ±íÄÚÈÝÈçÏÂ
Year month value
2009 1 1.1
2009 2 1.2
2009 3 1.3
2009 4 1.4
2010 1 2.1
2010 2 2.2
2010 3 2.3
2010 4 2.4
ÒªÇó²éѯ½á¹ûΪ
year m1 m2 m3 m4
2009 1.1 1.2 1.3 1.4
2010 2.1 2.2 2.3 2.4
mysql> select year,sum(case when month=1 then value end) as 'm1',sum(case when m
onth=2 then value end) as 'm2',sum(case when month=3 then value end)as 'm3' from
table2 group by year; ......