»ùÓÚMySQLµÄ¸ßÐÔÄÜÊý¾Ý¿âÓ¦Óÿª·¢(ʹÓÃCÁ¬½ÓMysql)
---- ÔÚÊý¾Ý¿âµÄÓ¦Óÿª·¢ÖУ¬³£³£»áÓöµ½ÐÔÄܺʹú¼ÛµÄÖ®¼äì¶Ü¡£ÒÔ×÷ÕßÔÚ¿ª·¢¹ÉÊÐÐÐ
Çé²éѯºÍ½»Ò×ϵͳÖÐÓöµ½µÄÎÊÌâΪÀý£¬ÒªÔÚʵʱ¼Ç¼1000¶àÖ»¹ÉƱÿ·ÖÖÓ¸üÐÂÒ»´ÎµÄÐÐ
ÇéÊý¾ÝµÄͬʱ£¬ÏìÓ¦´óÁ¿²¢·¢Óû§µÄÊý¾Ý²éѯÇëÇ󡣿¼Âǵ½ÐԼ۱ȺÍÒ×ά»¤ÐÔ£¬ÏµÍ³ÓÖ
ÒªÇóÔÚ»ùÓÚPC·þÎñÆ÷£¬Windows NTƽ̨µÄÈíÓ²¼þ»·¾³ÏÂʵÏÖ¡£¿ªÊ¼£¬ÎÒÃDzÉÓÃÁËMS SQL
Server 6.5 ×÷ΪÊý¾Ý¿âϵͳ£¬ÓÃVisual C++ 6.0¿ª·¢ÁË·ÃÎÊÊý¾Ý¿âµÄǰ¶Ë£¬Ó¦ÓÃODBC
Êý¾Ý½Ó¿Ú£¬ÔÚ½øÐÐÁË´óÁ¿µÄÊý¾Ý¿âÅäÖúͳÌÐòÓÅ»¯ºó£¬·¢ÏÖÈÔ²»ÄÜÂú×ãÐÔÄÜÒªÇ󡣺ó²É
ÓÃSQL ServerµÄDB-Library½Ó¿Ú£¬ÈƹýÁËODBC½âÊͲ㣬¿ÉÒÔÿÃë¸üÐÂÐÐÇéÊý¾Ý30´Î£¬Í¬
ʱ֧³Ö20£30¸ö×óÓҵIJ¢·¢Óû§½øÐÐÐÐÇé²éѯ£¬»ù±¾Âú×ãÒªÇ󣨵¥Ì¨PC·þÎñÆ÷£¬µ¥PII3
50 CPU£¬ÄÚ´æ128M£¬SCSIÓ²ÅÌ£©¡£ÓÐûÓпÉÄܽøÒ»²½Ìá¸ßϵͳµÄÐÔÄܺ͸ºÔØÄÜÁ¦ÄØ£¿¾
¹ý·ÖÎö£¬Êý¾Ý¿â·þÎñÆ÷ÊÇϵͳµÄÆ¿¾±¡£µ±È»£¬¿ÉÒÔ²ÉÓÃUNIX·þÎñÆ÷£«´óÐÍÊý¾Ý¿âµÄϵͳ
ƽ̨£¬µ«Æä¿ª·¢¡¢ÔËÐС¢Î¬»¤µÄ·ÑÓñÈ΢»ú£«Windows NTƽ̨µÄ·ÑÓø߳öÊý±¶¡£ÎÒÃÇÔÚ
ÆäËüһЩϵͳµÄ¿ª·¢ÖУ¬Ò²¾³£Óöµ½ÕâÑùµÄì¶Ü¡£ÈçºÎÔÚ΢»úƽ̨ÉϽ¨Á¢´óÈÝÁ¿¡¢¸ßЧ
ÂÊ¡¢Ò×ά»¤¡¢¸ßÐԼ۱ȵÄÊý¾Ý¿âÏµÍ³ÄØ£¿
---- ¿¼²ì¹úÄÚ»ùÓÚ΢»úƽ̨µÄÊý¾Ý¿âÓ¦ÓÃϵͳ£¬µäÐ͵ÄÈçÍøÒ׵ķֲ¼Ê½Óʼþϵͳ£¬²ÉÓÃ
ÁËFreeBSD+MySQLµÄƽ̨£¬ÆäÈÝÁ¿¡¢¸ºÔØÄÜÁ¦ºÍÏìÓ¦Ëٶȶ¼ºÜÓÅÐã¡£×÷Õß²éÔÄÁËMySQLµÄ
Ïà¹ØÎĵµ£¬·¢ÏÖMySQLÊÇGNUÈí¼þ£¨¼´OpenSource×ÔÓÉÈí¼þ£©Öзdz£ÓÅÐãµÄÊý¾Ý¿âϵͳ£¬
ËüÍêÈ«·ûºÏSQL92 £¨Entry level£©ºÍ ODBC£¨ level 0-2£©¹æ·¶£¬ÔÚ·ûºÏPOSIX¹æ·¶µÄ²Ù
×÷ϵͳÉÏʵÏÖÁ˷dz£¸ßЧµÄ¹ØÏµÐÍÊý¾Ý¿â¹ÜÀíϵͳ¡£¸ù¾ÝMySQLÌṩµÄÎĵµ£¬ËüµÄÊý¾Ý²Ù
×÷¿°³ÆËùÓÐÊý¾Ý¿âÖÐ×î¸ßЧµÄ£¬BenchmarkÈçÏÂ±í£º
Reading 2000000 rows by index
Database Seconds
mysql 367
mysql_odbc 464
db2_odbc 1206
informix_odbc 121126
ms-sql_odbc 1634
oracle_odbc 20800
solid_odbc 877
sybase_odbc 17614
Inserting (350768) rows
Database Seconds
mysql 381
mysql_odbc 619
db2_odbc 3460
informix_odbc 2692
ms-sql_odbc 4012
oracle_odbc 11291
solid_odbc 1801
sybase_odbc 4802
(run on the same NT 4.0 machine)
---- ´ÓMySQLµÄBenchmarkÖпÉÒÔ¿´µ½£¬MySQLµÄÐÔÄܷdz£³öÖÚ£¨µ±È»£¬²âÊÔµÄMySQLϵͳ
¿ÉÄÜ×÷ÁËÓÅ»¯£¬±»²âÊý¾Ý¿ÉÄÜÊÇÕë¶ÔMySQLÑ¡ÔñµÄ£©£¬¶øÇÒMySQLÌṩÁ˶Ô
Ïà¹ØÎĵµ£º
ÏÈÓñ´¶ûµÄÒ»µÀ±ÊÊÔÌâ¼òÒªµÄ˵Ã÷һϰɣº
¡¾Ì⡿˵Ã÷ÒÔϳÌÐò¡£
#include
int main(void)
{
unsigned int a[3] = {0x01020304, 0x05060708, 0x090a0b0c};
unsigned int *p = (unsigned int *)((int)a +1);¢Ù
printf("%x\n", *p);
return 0;
}
¡¾ÌâÄ¿½âÎö¡¿
Õâ¶Î³ÌÐòµÄÊä³ö½á¹ûÓ¦ ......
CÖеĿɱä²ÎÊýÑо¿
Ò»£® ºÎν¿É±ä²ÎÊý
int printf(const char* format, ...);
ÕâÊÇʹÓùýCÓïÑÔµÄÈËËùÔÙÊìϤ²»¹ýµÄprintfº¯ÊýÔÐÍ£¬ËüµÄ²ÎÊýÖоÍÓй̶¨²ÎÊýformat ......
MySQL »á×Ô¶¯¶Ï¿ª IDLE ʱ¼ä³¬¹ý 8 СʱµÄÊý¾Ý¿âÁ¬½Ó£¬´Ó¶øµ¼ÖÂһЩ»ùÓÚÊý¾Ý¿âÁ¬½ÓµÄÓ¦ÓóÌÐò£¬ÌرðÊÇ WEB Ó¦ÓóÌÐò³ö´í¡£
ÓÐÁ½¸ö°ì·¨¿ÉÒÔ½â¾öÕâ¸öÎÊÌ⣺
µÚÒ»¸ö°ì·¨ÊÇÐÞ¸Ä MySQL µÄÅäÖòÎÊý¡£Õâ¸ö²ÎÊýµÄÃû³ÆÊÇ wait_timeout
£¬ÆäĬÈÏֵΪ 28800(µ¥Î»Ãë)£¬¸ÕºÃ¾ÍÊÇ 8 Сʱ¡£ÆäÒâÒåΪ¹Ø±ÕÒ»¸öÁ¬½Ó֮ǰÔÚÕâ¸öÁ¬½ÓÉϵ ......
user±í:
id | name
———
1 | libk
2 | zyfon
3 | daodao
user_action±í:
user_id | action
—————
1 | jump
1 | kick
1 | jump
2 | run
4 | swim
sql:
select id, name, action from user as u
left join user_action a on u.id = a.user_id
result:
id | ......
typedef struct _RTP_header {
/* byte 0 */
#if (BYTE_ORDER == LITTLE_ENDIAN)
unsigned char csrc_len:4; /* expect 0 */
&nb ......