��������  ����Linux

mysql-logo.png (3082 bytes)MySQL���IJο��ֲ�

���ߣ����� ([email protected]��      ��ҳ��http://aosp.me


��һ��, ǰһ��, ��һ��, ���һ����Ŀ¼.


10 ��MySQL�õ���������

�Ż���һ��ӵ�������Ϊ��������Ҫ������ϵͳ�����⡣�������ϵͳ/Ӧ�õ�С֪ʶ��һЩ�ֲ��Ż��ǿ��ܵ�ʱ����Խ�������ϵͳ���Ż��������֪����ҲԽ�ࡣ

��ˣ����½���ͼ���Ͳ������Ż�MySQL�IJ�ͬ������һЩ���ӡ����Ǽ�ס������ijЩ(�𽥱���)��ϵͳ����ķ�������ȥ����

10.1 �Ż�����

Ϊ��ʹһ��ϵͳ���������Ҫ���ֵ�Ȼ�ǻ�����ơ���Ҳ��Ҫ֪�����ϵͳ�������������飬�Ǿ������ƿ����

�����ƿ���ǣ�

  • ����Ѱ�������̻�ʱ���ҵ�һ�����ݣ�����1999����ִ�������ƽ��ʱ��ͨ��С��10ms����������������ܴ�Լһ��Ѱ�� 1000 �Ρ����ʱ�����´�����ߺ������Һ��Ѷ�һ�����Ż����Ż����ķ����ǽ�����ɢ���ڶ�������ϡ�
  • ��������������Ҫ�����ݵ���ȷλ��ʱ�����̶�/д����1999����ִ���һ�����̴�������10-20Mb/s�����Ѱ���������Ż�����Ϊ���ܴӶ�����̲��еض���
  • CPU���ڡ������Ƕ����ݽ��ڴ�ʱ��(��������Ѿ�������)������Ҫ�������Դﵽ���ǵĽ����������������ڴ��С�ı�ʱ������������������أ�������С���ٶ�ͨ���������⡣
  • �ڴ��������CPU��Ҫ�����ʺ�cpu���������ʱ����������ͳ�Ϊ�ڴ��һ��ƿ�������ǶԴ����ϵͳ��һ����������ƿ��������Ӧ��֪������

10.2 ϵͳ/����ʱ�����������ĵ���

������ϵͳ���Ķ�����ʼ����Ϊ��Щ���ߵ�ijһЩ����������ˡ�����������£���������ⲿ�ֿ��ܾ͹��ˣ���Ϊ���Դ��ջ񲢲���Ҫ��������һ�����������������ջ��ж��ĸо����Ǻõġ�

ʹ�õ�ȱʡOSȷʵ��Ҫ��Ϊ�����̶ȵ�ʹ�ö�CPU��Ӧ��ʹ��Solaris(��Ϊ�̹߳�����ȷʵ����)��Linux(��Ϊ2.2���ĺ�����ȷʵ������SMP֧��)��������32λ�Ļ����ϣ�Linuxȱʡ��2G���ļ���С���ơ����µ��ļ�ϵͳ���ͳ�ʱ( XFS )��ϣ���ⲻ�ñ�������

��Ϊ����û�ںܶ�ƽ̨����������MySQL�������Ҹ����ڿ���ѡ����ǰ��������������е�ƽ̨��

�������飺

  • ��������㹻��RAM������ɾ�����н����豸��һЩ����ϵͳ��ijЩ����½�ʹ��һ��SWAP�豸����ʹ���п��е��ڴ档
  • ʹ��--skip-locking��MySQLѡ������ⲿ������ע���⽫��Ӱ��MySQL���ܣ�ֻҪ����������һ���������ϡ�ֻҪ��������myisamchk��ǰ���ǵ�Ҫͣ��������(��������ز���)����һЩϵͳ�����������ǿ�Ƶģ���Ϊ�ⲿ�����������κ�����¶�����������MIT-pthreads����ʱ��--skip-lockingѡ��ȱʡΪ��(on)����Ϊflock()û�����е�ƽ̨�ϱ�MIT-pthreads���֧�֡�Ψһ�������������ͬһ��������MySQL������(���ǿͻ�)���㲻��ʹ��--skip-locking֮ʱ�������û�������(flushing)��������mysqld�������ı�������myisamchk������Ȼ��ʹ��LOCK TABLES/ UNLOCK TABLES����ʹ������ʹ��--skip-locking��

10.2.1 �������������Ӱ��MySQL���ٶ�

��������в�����Linux�ϲ���MySQL��׼���еģ���������Ӧ�ö���������ϵͳ�͹������ظ���һЩָʾ��

������-static����ʱ����õ����Ŀ�ִ���ļ���ʹ��Unix�׽��ֶ���TCP/IP����һ�����ݿ�Ҳ�ɸ�����һЩ�����ܡ�

��Linux�ϣ�����pgcc��-O6����ʱ���㽫�õ����Ĵ��롣Ϊ������Щѡ�������sql_yacc.cc��������Ҫ��Լ200M�ڴ棬��Ϊgcc/pgcc��Ҫ�ܶ��ڴ�ʹ���к���Ƕ�루inline����������MySQLʱ����ҲӦ���趨CXX=gcc�Ա������libstdc++��(������Ҫ)��

ֻͨ��ʹ��һ���Ϻõı�������Ϻõı�����ѡ���Ӧ�������ܵõ�һ��10-30%�ļ��١�������Լ�����SQL�����������ر���Ҫ��

��Intel�ϣ���Ӧ������ʹ��pgcc��Cygnus CodeFusion�������õ�����ٶȡ������Ѿ��������µ� Fujitsu���������������ǻ�û�㹻���������Ż�����MySQL��

����������������һЩ��������

  • �������-O6ʹ��pgcc���ұ����κζ�����mysqld�������DZ���gcc��11%�����ַ���99�İ汾)��
  • ����㶯̬������(û��-static)���������13%��ע��������ʹ��һ����̬���ӵ�MySQL�⡣ֻ�з������������ǹؼ��ġ�
  • �����ʹ��TCP/IP����Unix�׽��֣������7.5%��
  • ��һ��Sun SPARCstation 10�ϣ�gcc2.7.3�DZ�Sun Pro C++ 4.2��13%��
  • ��Solaris 2.5.1�ϣ��ڵ�����������MIT-pthreads�ȴ�ԭ���̵߳�Solaris��8-12%���Ը���ĸ���/cpus�����Ӧ�ñ�ø���

��TcX�ṩ��MySQL-Linux�ķַ���pgcc���벢��̬���ӡ�

10.2.2 ��������

  • ����ǰ������������Ѱ����һ�����ܵĴ�ƿ���������ݿ�ʼ�������»����ò�����ʱ�����������Խ��Խ���ԡ��Դ����ݿ⣬����������ٵ�Ҫ�����ȡ���ݣ�����������㽫������Ҫһ�δ���Ѱ������ȡ���Ҽ��δ���Ѱ��д�롣Ϊ��ʹ���������С����ʹ���е�Ѱ��ʱ��Ĵ��̡�
  • Ϊ�����ӿ��ô����������(���ҴӶ�����Ѱ������)�����������ļ�����ͬ���̻�ָ�����ǿ��ܵġ�
    ʹ�÷�������
    ����ζ���㽫����/�����ļ����Ŵ�����������Ŀ¼���ӵ���������(��Ҳ���Ա��ָ��)����ʹ��Ѱ���Ͷ�ȡʱ�����(������̲�������������)����10.2.2.1 ʹ�����ݿ�ͱ��ķ���������
    �ָ�
    �ָ���ζ������������̲��ѵ�һ����ڵ�һ�������ϣ��ڵڶ�����ڵڶ��������ϣ����ҵ� n���ڵ�(n mod number_of_disks)�����ϣ��ȵȡ�����ζ�ţ��������������ݴ�С�ڷָ��С(�����������й�)���㽫�õ��Ϻ�һЩ�����ܡ�ע�⣬�ָ��Ƿ��������OS�ͷָ��С������ò�ͬ�ķָ��С�������Ӧ�ó��򡣼�10.8 ʹ�����Լ��Ļ�׼��ע��Էָ���ٶȲ����������ڲ�����ȡ��������ηָ�����ʹ�������������Եó����������IJ�ͬ��ע�������ѡ��Ϊ�����˳���ȡ�Ż���
  • Ϊ�˿ɿ����������Ҫʹ��Ϯ��RAID 0+1(�ָ�+����)����������������£��㽫��Ҫ2*N��������������N�������������ݡ��������Ǯ�����������õ�ѡ��Ȼ����Ҳ���ܱ���Ͷ��һЩ����������Ͷ���Ը�Ч�ش�������
  • һ����ѡ����������Ҫ������(��������)�ϴ���RAID 0�����ϣ�����ȷʵ��Ҫ������(��������Ϣ����־�ļ�)����һ��RAID 0+1��RAID N�����ϡ������Ϊ������żλ��������д�룬RAID N������һ�����⡣
  • ��Ҳ���Զ����ݿ�ʹ�õ��ļ�ϵͳ���ò�����һ�����׵ĸı�����noatimeѡ���װ�ļ�ϵͳ������������������inode�е�������ʱ�䣬�����⽫����һЩ����Ѱ����

10.2.2.1 Ϊ���ݿ�ͱ�ʹ�÷�������

����Դ����ݿ�Ŀ¼�ƶ��������ݿ⵽�𴦣����������ӵ��µص�ķ��Ŵ������ǡ��������Ҫ�����������磬ת��һ�����ݿ⵽�и�����пռ��һ���ļ�ϵͳ��

���MySQLע�⵽һ������һ���������ӣ����������������Ӳ���ʹ����ʵ��ָ��ı������ɹ�����֧��realpath()���õ�����ϵͳ��(����Linux��Solaris֧��realpath())���ڲ�֧��realpath()��ϵͳ�ϣ���Ӧ�ò�ͬʱͨ����ʵ·���ͷ������ӷ��ʱ���������������������κθ��º󽫲�һ�¡�

MySQLȱʡ��֧�����ݿ����ӡ�ֻҪ�㲻�����ݿ�֮����һ���������ӣ�һ�н������������ٶ�����MySQL����Ŀ¼����һ�����ݿ�db1����������һ����������db2ָ��db1��

shell> cd /path/to/datadir
shell> ln -s db1 db2

���ڣ�����db1�е���һ��tbl_a����db2��Ҳ������һ����tbl_a�����һ���̸߳���db1.tbl_a������һ���̸߳���db2.tbl_a���������⡣

�����ȷʵ��Ҫ�����������ı���������mysys/mf_format.c���еĴ��룺

if (!lstat(to,&stat_buff))  /* Check if it's a symbolic link */
    if (S_ISLNK(stat_buff.st_mode) && realpath(to,buff))

�Ѵ���ı�Ϊ������

if (realpath(to,buff))
 

10.2.3 ���ڷ���������

�������������õ�mysqld������ȱʡ��������С��

shell> mysqld --help

�����������һ������mysqldѡ��Ϳ����ñ����ı����������ȱʡֵ���ҿ���ȥ������һЩ������

Possible variables for option --set-variable (-O) are:
back_log              current value: 5
connect_timeout       current value: 5
delayed_insert_timeout  current value: 300
delayed_insert_limit  current value: 100
delayed_queue_size    current value: 1000
flush_time            current value: 0
interactive_timeout   current value: 28800
join_buffer_size      current value: 131072
key_buffer_size       current value: 1048540
lower_case_table_names  current value: 0
long_query_time       current value: 10
max_allowed_packet    current value: 1048576
max_connections       current value: 100
max_connect_errors    current value: 10
max_delayed_threads   current value: 20
max_heap_table_size   current value: 16777216
max_join_size         current value: 4294967295
max_sort_length       current value: 1024
max_tmp_tables        current value: 32
max_write_lock_count  current value: 4294967295
net_buffer_length     current value: 16384
query_buffer_size     current value: 0
record_buffer         current value: 131072
sort_buffer           current value: 2097116
table_cache           current value: 64
thread_concurrency    current value: 10
tmp_table_size        current value: 1048576
thread_stack          current value: 131072
wait_timeout          current value: 28800

�����һ��mysqld�������������У�ͨ��ִ������������Կ�����ʵ����ʹ�õı�����ֵ��

shell> mysqladmin variables

ÿ��ѡ�����������������ڻ�������С�����Ⱥ�ջ��С��ֵ���ֽڸ������������ڸ���׺��K������M�� ָ����K�ֽڻ����ֽ���ʾֵ�����磬16Mָ��16���ֽڡ���׺��ĸ�Ĵ�Сдû�й�ϵ��16M��16m����ͬ�ġ�

��Ҳ����������SHOW STATUS��һ�����еķ���������һЩͳ�ơ���7.21 SHOW�﷨(�õ������е���Ϣ)��

back_log
Ҫ��MySQL���е���������������ҪMySQL�߳���һ���ܶ�ʱ���ڵõ��dz��������������������ã�Ȼ�����̻߳�Щʱ��(���ܺܶ�)������Ӳ�������һ�����̡߳�back_logֵָ����MySQL��ʱֹͣ�ش�������֮ǰ�Ķ�ʱ���ڶ��ٸ�������Ա����ڶ�ջ�С�ֻ�����������һ����ʱ�����кܶ����ӣ�����Ҫ�����������仰˵����ֵ�Ե�����TCP/IP���ӵ��������еĴ�С����IJ���ϵͳ��������д�С�������Լ������ơ� Unix listen(2)ϵͳ���õ��ֲ�ҳӦ���и����ϸ�ڡ�������OS�ĵ��ҳ�������������ֵ����ͼ�趨back_log������IJ���ϵͳ�����ƽ�����Ч�ġ�
connect_timeout
mysqld����������Bad handshake���������֣�Ӧ��ǰ���ڵȴ�һ�����ӱ��ĵ�������
delayed_insert_timeout
һ��INSERT DELAYED�߳�Ӧ������ֹ֮ǰ�ȴ�INSERT����ʱ�䡣
delayed_insert_limit
�ڲ���delayed_insert_limit�к�INSERT DELAYED������������Ƿ����κ�SELECT���δִ�С�����������ڼ���ǰִ��������Щ��䡣
delayed_queue_size
Ӧ��Ϊ����INSERT DELAYED������һ������(������)������Ŷ����ˣ��κν���INSERT DELAYED�Ŀͻ����ȴ�ֱ���������пռ��ˡ�
flush_time
����ⱻ����Ϊ����ֵ����ôÿflush_time�����б������ر�(���ͷ���Դ��sync������)��
interactive_timeout
�������ڹ�����ǰ��һ�����������ϵȴ��ж���������һ�������Ŀͻ�������Ϊ��mysql_real_connect()ʹ��CLIENT_INTERACTIVEѡ��Ŀͻ���Ҳ�ɼ�wait_timeout��
join_buffer_size
����ȫ������(join)�Ļ�������С(����������������)����������2�������ÿ��ȫ���������һ�λ�����������������������ʱ�����Ӹ�ֵ�ɵõ�һ�������ȫ�����ᡣ��ͨ���õ������������ѷ�����������������
key_buffer_size
�������ǻ���IJ��ұ����е��̹߳�����key_buffer_size������������Ļ�������С���������ɵõ����ô���������(�����ж��Ͷ���д)�������ܸ������������ࡣ�����ʹ��̫��ϵͳ����ʼ��ҳ������ı����ˡ���ס��ȻMySQL�������ȡ�����ݣ��㽫����ΪOS�ļ�ϵͳ��������һЩ�ռ䡣Ϊ����д������ʱ�õ�������ٶȣ�ʹ��LOCK TABLES����7.24LOCK TABLES/UNLOCK TABLES�﷨��
long_query_time
���һ����ѯ����ʱ�䳬����(�����)��Slow_queries�������������ӡ�
max_allowed_packet
һ���������ߴ硣��Ϣ����������ʼ��Ϊnet_buffer_length�ֽڣ����ǿ�����Ҫʱ���ӵ�max_allowed_packet���ֽڡ�ȱʡ�أ���ֵ̫С���ܲ�׽���(���ܴ���)�������������ʹ�ô��BLOB�У���������Ӹ�ֵ����Ӧ��������Ҫʹ�õ����BLOB����ô��
max_connections
������ͬʱ�ͻ������������Ӹ�ֵ����mysqldҪ����ļ�����������������������ļ����������Ƶ�ע�͡���18.2.4 Too many connections������
max_connect_errors
����ж��ڸ������Ĵ�һ̨�����жϵ����ӣ���̨������ֹ��һ�������ӡ������FLUSH HOSTS������ͨһ̨������
max_delayed_threads
��Ҫ�������ڵ�������ֵ��߳�������INSERT DELAYED��䡣�������ͼ������INSERT DELAYED�߳����ú���һ���±��������ݣ��н������룬����DELAYED����û��ָ��������
max_join_size
���ܽ�Ҫ�������max_join_size����¼�����Ὣ����һ�������������û���Ҫִ��û��һ��WHERE�Ӿ䡢���ܳ�ʱ�䲢�ҷ��ذ����е����ᣬ��������
max_sort_length
������BLOB��TEXTֵʱʹ�õ��ֽ���(ÿ��ֵ��ͷmax_sort_length���ֽڱ�ʹ�ã�����ı�����)��
max_tmp_tables
����ѡ��Ŀǰ�������κ�����)��һ���ͻ���ͬʱ���ִ򿪵���ʱ�������������
net_buffer_length
ͨ�Ż������ڲ�ѯ֮�䱻���õ��ô�С��ͨ���ⲻӦ�ñ��ı䣬����������к��ٵ��ڴ棬���ܽ�������Ϊ��ѯ�����Ĵ�С���������ͻ�������SQL��������ij��ȡ������䳬��������ȣ��������Զ��ر�����ֱ��max_allowed_packet���ֽڡ���
record_buffer
ÿ������һ��˳��ɨ����߳�Ϊ��ɨ���ÿ�ű����������С��һ������������������ܶ�˳��ɨ�裬�������Ҫ���Ӹ�ֵ��
sort_buffer
ÿ����Ҫ����������̷߳���ô�С��һ����������������ֵ����ORDER BY��GROUP BY��������18.5 MySQL���Ķ��洢��ʱ�ļ���
table_cache
Ϊ�����̴߳򿪱������������Ӹ�ֵ������mysqldҪ����ļ���������������MySQL��ÿ��Ψһ�򿪵ı���Ҫ2���ļ�����������������ļ����������Ƶ�ע�͡����ڱ�������ι�������Ϣ����10.2.4 MySQL�����򿪺͹رձ���
tmp_table_size
���һ����ʱ�������ô�С��MySQL����һ��The table tbl_name is full��ʽ�Ĵ�����������ܶ�߼�GROUP BY��ѯ������tmp_table_sizeֵ��
thread_stack
ÿ���̵߳�ջ��С����crash-me���Լ�⵽���������������ڸ�ֵ��ȱʡ��һ��IJ������㹻���ˡ���10.8 ʹ�����Լ��Ļ�׼��
wait_timeout
�������ڹر���֮ǰ��һ�������ϵȴ��ж���������Ҳ�ɼ�interactive_timeout��

MySQLʹ���Ǻܾ������Ե��㷨�������ͨ�����ú��ٵ��ڴ����л��MySQL����ı����Եõ����õ����ܡ�

������кܶ��ڴ�ͺܶ��������һ���е������Ŀͻ�����Ҫ�������ܣ���Ӧ��һЩ�������Ķ�����

shell> safe_mysqld -O key_buffer=16M -O table_cache=128 \
           -O sort_buffer=4M -O record_buffer=1M &

������н��ٵ��ڴ�ʹ��������ӣ�ʹ������һЩ������ 
shell> safe_mysqld -O key_buffer=512k -O sort_buffer=100k \
           -O record_buffer=100k &
�������� 
shell> safe_mysqld -O key_buffer=512k -O sort_buffer=16k \
           -O table_cache=32 -O record_buffer=8k -O net_buffer=1K &

����кܶ����ӣ����������⡱���ܷ���������mysqld�Ѿ�������ÿ������ʹ�ú��ٵ��ڴ档��Ȼ�����������������㹻���ڴ棬mysqldִ�еø��á�

ע�⣬�����ı�mysqld��һ��ѡ���ʵ����ֻ�Է��������Ǹ����ӱ��֡�

Ϊ������һ�������仯��Ч������������

shell> mysqld -O key_buffer=32m --help

��֤--helpѡ�������һ��������������������֮���г����κ�ѡ���Ч�������ڷ�ӳ������С�

10.2.4 MySQL�����򿪺͹ر����ݿ��

table_cache, max_connections��max_tmp_tablesӰ����������ִ򿪵��ļ�����������������������Щֵ��һ���������������������IJ���ϵͳÿ�����̴��ļ���������������ǿ�ӵ����ơ�Ȼ�����������������ϵͳ�����Ӹ����ơ�������OS�ĵ��ҳ��������Щ����Ϊ�ı����Ƶķ�����ϵͳ�кܴ�IJ�ͬ��

table_cache��max_connections�йء����磬����200���򿪵����ӣ���Ӧ����һ�ű��Ļ���������200 * n������n��һ������(join)�б������������

�򿪱��Ļ���������ӵ�һ��table_cache�����ֵ��ȱʡΪ64���������mysqld��-O table_cache=#ѡ�����ı䣩��һ�������Բ����رգ����ǵ��������˲�������һ���߳���ͼ��һ����ʱ�������ʹ��mysqladmin refresh��mysqladmin flush-tables��

����������ʱ��������ʹ�����й����ҵ�һ�����������ʹ�ã�

  • ���ǵ�ǰʹ�õı����ͷţ����������ʹ�ã�LRU��˳��
  • ����������˲���û�б������ͷţ�����һ���±���Ҫ�򿪣����������ʱ������
  • ������洦��һ����ʱ����״̬����һ���������ñ�Ϊ������״̬�������رղ��ӻ������ͷš�

��ÿ��������ȡ��һ����������ζ�ţ��������2���̴߳�ȡͬһ��������ͬһ����ѯ�д�ȡ������(��AS)������Ҫ�������Ρ��κα��ĵ�һ�δ�ռ2���ļ�������������ÿһ�ζ���ʹ�ý�ռһ���ļ������������ڵ�һ�δ򿪵Ķ������������������ļ�������������������߳�֮�乲����

10.2.5 ��ͬһ�����ݿ��д����������ݿ����ȱ��

�������һ��Ŀ¼���������ļ����򿪡��رպʹ���������������������ִ�������಻ͬ���ϵ�SELECT��䣬����������ʱ������һ�㿪������Ϊ��ÿ������򿪵ı�������һ�����뱻�رա������ͨ��ʹ���������Щ���������������

10.2.6 Ϊʲô����ô��򿪵ı���

��������mysqladmin statusʱ���㽫������������һЩ������

Uptime: 426 Running threads: 1 Questions: 11082 Reloads: 1 Open tables: 12

��������6��������������������

MySQL�Ƕ��̵߳ģ����������ͬʱ��ͬһ������������ѯ�ʡ�Ϊ����2���߳���ͬһ���ļ����в�ͬ״̬�����������С������ÿ���������̶����ش򿪡���Ϊ�����ļ�����һЩ�ڴ��һ��������ļ��������������ļ��������������߳�֮�乲����

10.2.7 MySQL����ʹ���ڴ�

�±�ָ��mysqld������ʹ�ô洢����һЩ��ʽ����Ӧ�õĵط���������洢��ʹ����صķ��������������֡�

  • �ؼ��ֻ�����(����key_buffer_size)�������̷߳���������Ҫʱ�����������ʹ�õ���������������10.2.3 ���ڷ�����������
  • ÿ������ʹ��һЩ�߳��ض��Ŀռ䣻һ��ջ(ȱʡ64K������thread_stack)��һ�����ӻ�����(����net_buffer_length)��һ�����������(����net_buffer_length)������Ҫʱ�����ӻ������ͽ����������̬�ر�����max_allowed_packet����һ����ѯ�������е�ǰ��ѯ��һ������ʱ��Ҳ�����ַ�����
  • �����̹߳���ͬһ���洢����
  • Ŀǰ��û��ʲô���ڴ�ӳ���(����ѹ������������������һ���Ĺ���)��������Ϊ4GB��32λ�洢���ռ���������ݿ����������㹻��ġ���һ��64λѰַ�ռ��ϵͳ��ø��ձ�ʱ�����ǿ���Ϊ�ڴ�ӳ������ȫ���֧�֡�
  • ÿ����˳��ɨ����������һ����������(����record_buffer)��
  • �����������һ����ɲ��Ҵ�������������������һ����ʱ������ɡ�����ʱ�ı��ǻ����ڴ��(HEAP)�����нϴ��¼����(�������еij���֮�ͼ���)����ʱ�������BLOB�еı��ڴ����ϴ洢����MySQL�汾3.23.2ǰһ�����������һ��HEAP������tmp_table_size�Ĵ�С����õ�����The table tbl_name is full���ڸ��µİ汾�У���ͨ����Ҫʱ�Զ������ڴ��(HEAP)��ת��Ϊһ�����ڴ���(MyISAM)�ı���������Ϊ�˽��������⣬�����ͨ������mysqld��tmp_table_sizeѡ���ͨ���ڿͻ�����������SQL��SQL_BIG_TABLESѡ��������ʱ���Ĵ�С����7.25 SET OPTION�䷨����MySQL 3.20�У���ʱ�������ߴ���record_buffer*16��������������ʹ������汾�����������record_bufferֵ����Ҳ����ʹ��--big-tablesѡ������mysqld���ܽ���ʱ���洢�ڴ����ϣ�Ȼ�����⽫Ӱ�����ิ�Ӳ�ѯ���ٶȡ�
  • �������������������һ�����򻺳�����һ���������ʱ�ļ�����18.5 MySQL���Ķ��洢��ʱ�ļ���
  • �������е��﷨�����ͼ��㶼��һ�ұ��ش洢������ɡ���С��Ŀû���ڴ濪������һ��Ľ����洢��������ͷű����⡣�ڴ��Ϊ�������ϵĴ��ַ�������(����malloc()��free()���)��
  • ÿ�������ļ�ֻ����һ�Σ����������ļ�Ϊÿ���������е��̴߳�һ�Ρ���ÿ�������̣߳�����һ�����ṹ����ÿ�е��нṹ�ʹ�СΪ3 * n��һ��������(����n�������г��ȣ�����BLOB��)��һ��BLOBʹ��5 �� 8���ֽڼ���BLOB���ݡ�
  • ��ÿ����BLOB�еı���һ����������̬�ر������Ա��������BLOBֵ�������ɨ��һ���������������BLOBֵһ�����һ����������
  • ���������õı��ı���������������һ�������в�����Ϊһ��FIFO������ͨ��������64����ڡ����һ����ͬʱ��2�����е��߳�ʹ�ã�����Ϊ�˰���2����ڡ���10.2.4 MySQL��δ򿪺͹ر����ݿ����
  • һ��mysqladmin flush-tables����ر����в����õı����ڵ�ǰִ�е��߳̽���ʱ������������õı�׼�����رա��⽫��Ч���ͷŴ�������õ��ڴ档

ps������ϵͳ״̬������Ա���mysqldʹ�úܶ��ڴ档��������ڲ�ͬ���ڴ��ַ�ϵ��߳�ջ��ɵġ����磬Solaris�汾��ps��ջ��δ�õ��ڴ��������õ��ڴ档�����ͨ����swap -s�����ý���������֤������������ҵ�ڴ�©��̽����������mysqld�����Ӧ����û���ڴ�©����

10.2.8 MySQL�����������ݿ��

MySQL���������������������ġ���ͨ��������һ����ѯǰ�����������б�Ҫ����������������ͬ����˳����������������

��WRITE��MySQLʹ�õ���������ԭ�����£�

  • ����ڱ���û��������һ�����������档
  • ���򣬰������������д���������С�

��READ��MySQLʹ�õ���������ԭ�����£�

  • ����ڱ���û��д��������һ�����������������档
  • ���򣬰���������ڶ����������С�

��һ���������ͷ�ʱ�������ɱ�д���������е��̵߳õ���Ȼ���Ƕ����������е��̡߳�

����ζ�ţ��������һ��������������ģ�SELECT��佫�ȴ�ֱ����û�и���ĸ��ġ�

Ϊ�˽����һ�����н��кܶ�INSERT��SELECT����������������һ����ʱ���в����в���ż����������ʱ���ļ�¼���������ı���

����������������

mysql> LOCK TABLES real_table WRITE, insert_table WRITE;
mysql> insert into real_table select * from insert_table;
mysql> delete from insert_table;
mysql> UNLOCK TABLES;

�������һЩ�ض�������������ּ��������ȴ��������ʹ��LOW_PRIORITYѡ���INSERT����7.14 INSERT�䷨��

��Ҳ�ܸı�����mysys/thr_lock.c���е���������ʹ��һ���������С�����������£�д�����Ͷ���������ͬ�����ȼ��������ܰ���һЩӦ�ó���

10.2.9 ���ݿ��������������

MySQL�ı����������Dz��������ġ�

MySQLʹ�ñ�������(�������м��������м�����)�Դﵽ�ܸߵ������ٶȡ����ڴ�������������Դ����Ӧ�ó�����˵���м�������һЩ�����ǵ�Ȼ��һЩȱ�ݡ�

��MySQL3.23.7�͸��߰汾�У�һ�����ܰ��в��뵽MyISAM��ͬʱ�����߳����ڶ��ñ���ע�⣬Ŀǰֻ���ڱ�������ɾ������ʱ�Ź�����

��������ʹ�ܶ��߳��ܹ�ͬʱ��һ�������������һ���߳���Ҫдһ���������������ȵõ���ռ��ȡȨ���ڸ����ڼ䣬����������Ҫ��ȡ���ض������߳̽��ȵ����ľ�����

��Ϊ���ݿ�ĸ���ͨ������Ϊ��SELECT����Ҫ������һ�������������ȴ�һ�����м�����Ϣ������и��ߵ����ȼ�����Ӧ�ñ�֤���IJ���������������Ϊһ�������һ���ض����ᷢ���ܶ෱�صIJ�ѯ��

��MySQL 3.23.7��ʼ��һ���˿�����ʹ��max_write_lock_count����ǿ��MySQL��һ������һ���ض������IJ���󷢳�һ��SELECT��

�Դ�һ����Ҫ���������£�

  • һ���ͻ�����һ�����ܳ�ʱ�����е�SELECT��
  • Ȼ�������ͻ���һ��ʹ�õı��Ϸ���һ��UPDATE������ͻ����ȴ�ֱ��SELECT��ɡ�
  • ��һ���ͻ���ͬһ�����Ϸ�����һ��SELECT��䣻��ΪUPDATE��SELECT�и��ߵ����ȼ�����SELECT���ȴ�UPDATE����ɡ���Ҳ���ȴ���һ��SELECT��ɣ�

����������һЩ���ܵĽ�������ǣ�

  • ����ʹSELECT������еø��죻����ܱ��봴��һЩժҪ(summary)��������㡣
  • ��--low-priority-updates����mysqld���⽫�����и���(�޸�)һ����������Ա�SELECT���͵����ȼ�������������£�����ǰ���ε�����SELECT��佫��INSERT���ǰִ�С�
  • �������LOW_PRIORITY���Ը���һ���ض���INSERT��UPDATE��DELETE���ϵ����ȼ���
  • Ϊmax_write_lock_countָ��һ����ֵ������mysqldʹ����һ��������WRITE���������READ������
  • ͨ��ʹ��SQL���SET SQL_LOW_PRIORITY_UPDATES=1����ɴ�һ���ض��߳�ָ�����еĸ���Ӧ�����õ����ȼ���ɡ���7.25 SET OPTION�䷨��
  • �������HIGH_PRIORITY����ָ��һ���ض�SELECT�Ǻ���Ҫ�ġ���7.12 SELECT�䷨��
  • ������й���INSERT���SELECT�����⣬�л���ʹ���µ�MyISAM������Ϊ����֧�ֲ�����SELECT��INSERT��
  • �������Ҫ���INSERT��SELECT��䣬DELAYED������INSERT�����ܽ��������⡣��7.14 INSERT�䷨��
  • ������й���SELECT��DELETE�����⣬LIMITѡ���DELETE���԰����㡣��7.11 DELETE�䷨��

10.3 ʹ������ݾ�����С

��������Ż�֮һ��ʹ�������(������)�ڴ�����(�������ڴ���)ռ�ݵĿռ価����С�����ܸ����޴�ĸĽ�����Ϊ���̶���Ͽ첢��ͨ��Ҳ�ý��ٵ����洢��������ڸ�С������������������Ҳռ�ݽ��ٵ���Դ��

����������ļ���ʹ�������ܸ��ò���ʹ�洢�ռ���С��

  • �����ܵ�ʹ������Ч(��С)�����͡�MySQL�кܶ��ʡ���̿ռ���ڴ��רҵ�����͡�
  • �������ʹ����С��ʹ�ý�С���������͡����磬MEDIUMINT������INT��һЩ��
  • ������ܣ�������ΪNOT NULL����ʹ�κ�������������Ϊÿ�н�ʡһλ��ע����������Ӧ�ó�������ȷʵ��ҪNULL����Ӧ�ú�������ʹ������ֻ�DZ���ȱʡ������������������
  • �����û���κα䳤��(VARCHAR��TEXT��BLOB��)��ʹ�ù̶��ߴ�ļ�¼��ʽ����ȽϿ쵫�Dz��ҵؿ��ܻ��˷�һЩ�ռ䡣��10.6 ѡ��һ�ֱ�������
  • ÿ������Ӧ���о����̵ܶ�����������ʹһ�еı������׶���Ч��
  • ��ÿ��������������ʹ�����ִ洢/������������9.4 MySQL��������Ҳ�ɲμ�10.6 ѡ��һ�ֱ�������
  • ֻ������ȷʵ��Ҫ�������������Լ����кô����ǵ�����Ҫ���ٴ洢����ʱ�ͱ����⡣�������Ҫͨ�������е��������ȡһ��������������һ����������һ����������Ӧ������õ��С����������ʹ�������У���Ӧ�������Ը���ĸ���ʹ�����Ի�ø��õ�������ѹ����
  • ����ܿ���һ��������ͷ�����ַ�����Ψһ��ǰ׺������������ǰ׺�ȽϺá�MySQL֧����һ���ַ��е�һ�����ϵ����������̵��������죬������Ϊ����ռ���ٵĴ��̿ռ������Ϊ���ǽ������������и������������ʲ�������и��ٴ���Ѱ������10.2.3 ���ڷ�����������
  • ��һЩ�����£��ָ�һ��������ɨ���2�����ı�������ġ��ر����������һ����̬��ʽ�ı�����������ʹһ��������ɨ����ҳ�����еĽ�С��̬��ʽ�ı���

10.4 MySQL������ʹ��

���������������ҳ���һ��������һ�ض�ֵ���С�û��������MySQL���ò������Ե�һ����¼��ʼ��Ȼ�����������ֱ�����ҳ���ص��С���Խ�󣬻���ʱ��Խ�ࡣ��������ڲ�ѯ������һ��������MySQL�ܿ��ٵ���һ��λ��ȥ��Ѱ�������ļ����м䣬û�б�Ҫ�����������ݡ����һ������1000�У����˳���ȡ���ٿ�100����ע������Ҫ��ȡ��������1000�У����Ͽ��˳���ȡ����Ϊ��ʱ���DZ������Ѱ����

���е�MySQL����(PRIMARY��UNIQUE��INDEX)��B���д洢���ַ������Զ���ѹ��ǰ׺�ͽ�β�ռ䡣��7.27 CREATE INDEX�䷨��

�������ڣ�

  • �����ҳ�ƥ��һ��WHERE�Ӿ���С�
  • ��ִ������ʱ���������������С�
  • ���ض����������ҳ�MAX()��MIN()ֵ��
  • �������������һ�����ü���������ǰ׺�Ͻ���(���磬ORDER BY key_part_1,key_part_2)����������һ������������м�ֵ���ָ���DESC�����Ե��򱻶�ȡ��
  • ��һЩ����У�һ����ѯ�ܱ��Ż�������ֵ��������ѯ�����ļ��������ijЩ��������ʹ�õ����������͵IJ��ҹ���ijЩ����������ǰ׺��Ϊ�˸��죬ֵ���Դ�������������������

�ٶ��㷢������SELECT��䣺

mysql> SELECT * FROM tbl_name WHERE col1=val1 AND col2=val2;

���һ����������������col1��col2�ϣ��ʵ����п���ֱ�ӱ�ȡ��������ֿ��ĵ���������������col1��col2�ϣ��Ż�����ͼͨ�������ĸ��������ҵ����ٵ��в����ҳ����������Ե���������ʹ�ø�����ȡ�С�

�������һ�������������κ������������ǰ׺�ܱ��Ż���ʹ�����ҳ��С����磬�������һ��3��������(col1,col2,col3)�����Ѿ���������(col1)��(col1,col2)��(col1,col2,col3)�ϵ�����������

����в�����������������ǰ׺��MySQL����ʹ��һ�����ֵ��������ٶ���������ʾ��SELECT��䣺

mysql> SELECT * FROM tbl_name WHERE col1=val1;
mysql> SELECT * FROM tbl_name WHERE col2=val2;
mysql> SELECT * FROM tbl_name WHERE col2=val2 AND col3=val3;

���һ������������(col1��col2��col3)�ϣ�ֻ��������ʾ�ĵ�һ����ѯʹ���������ڶ����͵�������ѯȷʵ�����������У�����(col2)��(col2��col3)����(col1��col2��col3)��������ǰ׺��

���LIKE������һ������һ��ͨ����ַ���ʼ��һ�������ַ�����MySQLҲΪLIKE�Ƚ�ʹ�����������磬����SELECT���ʹ��������

mysql> select * from tbl_name where key_col LIKE "Patrick%";
mysql> select * from tbl_name where key_col LIKE "Pat%_ck%";

�ڵ�һ������У�ֻ������"Patrick" <= key_col < "Patricl"���С��ڵڶ�������У�ֻ������"Pat" <= key_col < "Pau"���С�

����SELECT��佫��ʹ��������

mysql> select * from tbl_name where key_col LIKE "%Patrick%";
mysql> select * from tbl_name where key_col LIKE other_col;

�ڵ�һ������У�LIKEֵ��һ��ͨ����ַ���ʼ���ڵڶ�������У�LIKEֵ����һ��������

��� column_name ��һ��������ʹ��column_name IS NULL��������ʹ��������

MySQLͨ��ʹ���ҳ������������е�������һ�������������������в��������Ƚϵ��У�=��>��>=��<��<=��BETWEEN��һ����һ����ͨ���ǰ׺��'something%'��LIKE���С�

�κβ���Խ����WHERE�Ӿ������AND��ε������������Ż�ѯ�ʡ�

����WHERE�Ӿ�ʹ��������

... WHERE index_part1=1 AND index_part2=2
... WHERE index=1 OR A=10 AND index=2      /* index = 1 OR index = 2 */
... WHERE index_part1='hello' AND index_part_3=5
          /* optimized like "index_part1='hello'" */

��ЩWHERE�Ӿ���ʹ��������

... WHERE index_part2=1 AND index_part3=2  /* index_part_1 is not used */
... WHERE index=1 OR A=10                  /* No index */
... WHERE index_part1=1 OR index_part2=10  /* No index spans all rows */

10.5 ��ȡ��������ݵIJ�ѯ�ٶ�

���ȣ�һ������Ӱ�����е�ѯ�ʡ����е�����ϵͳ����Խ���ӣ���õ�����Ŀ�����

����㲻���κ�GRANT���ִ�У�MySQL����΢�Ż����ɼ�顣���������кܴ�����ֵ�û�ʱ����������Ȩ�������������ɼ���и���Ŀ�����

��������������һЩ���Ե�MySQL�����йأ���������MySQL�ͻ��м�����ʱ�䣺

mysql> select benchmark(1000000,1+1);
+------------------------+
| benchmark(1000000,1+1) |
+------------------------+
|                      0 |
+------------------------+
1 row in set (0.32 sec)

������ʾMySQL����PentiumII 400MHz����0.32��ִ��1,000,000��+����ʽ��

����MySQL����Ӧ�ñ��߶��Ż��������Կ�����һЩ���Ⲣ��benchmark(loop_count,expression)���ҳ��Ƿ���IJ�ѯ�������һ�����ù��ߡ�

10.5.1 ���Ʋ�ѯ����

�ڴ��������£�����ͨ���������Ѱ���������ܡ���С�ı�����ͨ������1�δ���Ѱ�����ҵ���(��Ϊ����������ܱ�����)���Ը���ı������ܹ�����(ʹ�� B++ ������)���㽫��Ҫ��log(row_count)/log(index_block_length/3*2/(index_length + data_pointer_length))+1��Ѱ���ҵ��С�

��MySQL�У�������ͨ����1024���ֽ�������ָ��ͨ����4���ֽڣ����һ����һ����������Ϊ3(�е�����)�� 500,000 �еı����㣺log(500,000)/log(1024/3*2/(3+4)) + 1= 4 ��Ѱ����

�������������Ҫ���Լ 500,000 * 7 * 3/2 = 5.2M��(����������������������2/3(���ǵ��͵�))���㽫�������ڴ����������Ĵ󲿷ֲ����㽫���ܽ���Ҫ1-2���ô�OS���������ҳ��С�

Ȼ������д���㽫��Ҫ 4 ��Ѱ������(����)���ҵ����Ķ��������������ͨ����2��Ѱ�����������������д���С�

ע�⣬��������ζ�����Ӧ�ó��򽫻������� N log N �˻����������ø���ʱ��ֻҪһ�б�OS��SQL���������壬���齫���������ٵظ����������ݱ��̫���ܱ���������齫��ʼ��ø���ֱ�����Ӧ�ó�������ܴ���Ѱ������(����N log N����)��Ϊ�˱���������ӣ������������������Ӷ����ӡ���10.2.3 ���ڷ�����������

10.5.2 SELECT��ѯ���ٶ�

�ܵ���˵��������Ҫʹһ��������SELECT ... WHERE���죬���ĵ�һ�����������Ƿ�������һ����������10.4 MySQL ������ʹ�����ڲ�ͬ��֮�����������ͨ��Ӧ����������ɡ������ʹ��EXPLAIN��ȷ���ĸ���������һ��SELECT��䡣��7.22 EXPLAIN�䷨(�õ�����һ��SELECT����Ϣ)��

һЩһ��Ľ��飺

  • Ϊ�˰���MySQL���õ��Ż���ѯ�������Ѿ�װ����������ݺ���һ����������myisamchk --analyze����Ϊÿһ������һ��ֵ��ָ������ֵͬ��ƽ����������Ȼ����Ψһ������������1����
  • Ϊ�˸���һ����������һ�����������ݣ�ʹ��myisamchk --sort-index --sort-records=1���������Ҫ������1������)���������һ��Ψһ����������Ҫ���ݸ������ش����ȡ���еļ�¼������ʹ�������һ���÷�����Ȼ��ע�⣬�������û�б���ѵر�д�����Ҷ�һ����������ܳ�ʱ�䣡

10.5.3 MySQL�����Ż�WHERE�Ӿ�

where�Ż�������SELECT�У���Ϊ��������Ҫ������ʹ�������ͬ�����Ż�������DELETE��UPDATE��䡣

ҲҪע�⣬�����Dz���ȫ�ġ�MySQLȷʵ���������Ż�������û��ʱ��ȫ����¼���ǡ�

��MySQLʵʩ��һЩ�Ż��������棺

  • ɾ������Ҫ�����ţ�
       ((a AND b) AND c OR (((a AND b) AND (c AND d))))
    -> (a AND b AND c) OR (a AND b AND c AND d)
    
  • �������룺
       (a<b AND b=c) AND a=5
    -> b>5 AND b=c AND a=5
    
  • ɾ����������(������������)��
       (B>=5 AND B=5) OR (B=6 AND 5=5) OR (B=7 AND 5=6)
    -> B=5 OR B=6
    
  • ����ʹ�õij�������ʽ������һ�Ρ�
  • ��һ���������ϵ�û��һ��WHERE��COUNT(*)ֱ�Ӵӱ��м�����Ϣ������ʹ��һ����ʱ�����κ�NOT NULL����ʽҲ��������
  • ��Ч��������ʽ�����ڼ�⡣MySQL���ټ��ijЩSELECT����Dz����ܵIJ��Ҳ������С�
  • ����㲻ʹ��GROUP BY����麯��(COUNT()��MIN()����)��HAVING��WHERE�ϲ���
  • Ϊÿ��������(sub join)������һ�����򵥵�WHERE�Եõ�һ�������WHERE���㲢��Ҳ����������¼��
  • ���г����ı��ڲ�ѯ�е��κ�������ǰ�����ȶ�����һ�������ı��ǣ�
    • һ���ձ���һ����1�еı���
    • ����һ��UNIQUE��������һ��PRIMARY KEY��WHERE�Ӿ�һ��ʹ�õı����������е���������ʹ��һ����������ʽ�����������ֱ�����ΪNOT NULL��

    �������еı�������������

    mysql> SELECT * FROM t WHERE primary_key=1;
    mysql> SELECT * FROM t1,t2
               WHERE t1.primary_key=1 AND t2.primary_key=t1.id;
    
  • ���������������������ͨ���������п��������ҵ�:(�����������ORDER BY��GROUP BY��������ͬһ��������ô������ʱ���ñ����ȱ�ѡ�С�
  • �����һ��ORDER BY�Ӿ��һ����ͬ��GROUP BY�Ӿ䣬�����ORDER BY��GROUP BY��������������������еĵ�һ���������������У�����һ����ʱ����
  • �����ʹ��SQL_SMALL_RESULT��MySQL��ʹ��һ�����ڴ��еı���
  • ��ΪDISTINCT���任�������е����ϵ�һ��GROUP BY��DISTINCT��ORDER BY���Ҳ���������������Ҫһ����ʱ����
  • ÿ��������������ѯ����ʹ�ÿ�Խ����30% ���е��������������������û���ҵ���ʹ��һ�����ٵı�ɨ�衣
  • ��һЩ����£�MySQL�ܴ������ж����У���������ѯ�����ļ����������ʹ�õ������������ֵģ���ôֻ������������������ѯ��
  • ��ÿ����¼�����ǰ����Щ��ƥ��HAVING�Ӿ���б�������

������һЩ�ܿ�IJ�ѯ���ӣ�

mysql> SELECT COUNT(*) FROM tbl_name;
mysql> SELECT MIN(key_part1),MAX(key_part1) FROM tbl_name;
mysql> SELECT MAX(key_part2) FROM tbl_name
           WHERE key_part_1=constant;
mysql> SELECT ... FROM tbl_name
           ORDER BY key_part1,key_part2,... LIMIT 10;
mysql> SELECT ... FROM tbl_name
           ORDER BY key_part1 DESC,key_part2 DESC,... LIMIT 10;

���в�ѯ��ʹ���������Ϳɽ��(���������������ֵ�)��

mysql> SELECT key_part1,key_part2 FROM tbl_name WHERE key_part1=val;
mysql> SELECT COUNT(*) FROM tbl_name
           WHERE key_part1=val1 AND key_part2=val2;
mysql> SELECT key_part2 FROM tbl_name GROUP BY key_part1;

���в�ѯʹ������������˳�����������һ�����������

mysql> SELECT ... FROM tbl_name ORDER BY key_part1,key_part2,...
mysql> SELECT ... FROM tbl_name ORDER BY key_part1 DESC,key_part2 DESC,...

10.5.4 MySQL�����Ż�LEFT JOIN

��MySQL�У�A LEFT JOIN Bʵ�����£�

  • ��B������Ϊ�����ڱ�A��
  • ��A������Ϊ��������������LEFT JOIN�����ı�(��B��)��
  • ����LEFT JOIN�������Ƶ�WHERE�Ӿ��С�
  • �������б�׼�������Ż�������һ���������������������ı�֮�󱻶�ȡ�������һ��ѭ��������MySQL������һ������
  • �������б�׼��WHERE�Ż���
  • �����A����һ��ƥ��WHERE�Ӿ䣬������B��û���κ���ƥ��LEFT JOIN��������ô��B����������������ΪNULL��һ�С�
  • �����ʹ��LEFT JOIN���ҳ���ijЩ���в����ڵ��в�����WHERE�����������в��ԣ�column_name IS NULL������column_name ������ΪNOT NULL���У���ôMySQL�����Ѿ��ҵ���ƥ��LEFT JOIN������һ�к󣬽�ֹͣ�ڸ�����к�Ѱ��(��һ�ض��ļ����)��

10.5.5 MySQL�����Ż�LIMIT

��һЩ����У�����ʹ��LIMIT #����ʹ��HAVINGʱ��MySQL���Բ�ͬ��ʽ������ѯ��

  • �������LIMITֻѡ��һЩ�У���MySQLһ��Ƚ�ϲ���������ı�ɨ��ʱ��������һЩ�����ʹ��������
  • �����ʹ��LIMIT #��ORDER BY��MySQLһ���ҵ��˵�һ�� # �У����������������������������
  • �����LIMIT #��DISTINCTʱ��MySQLһ���ҵ�#��Ψһ���У�����ֹͣ��
  • ��һЩ����£�һ��GROUP BY��ͨ��˳���ȡ��(���ڼ���������)���������Ȼ�����ժҪֱ����ֵ�ı䡣����������£�LIMIT #���������κβ���Ҫ��GROUP��
  • ֻҪMySQL�Ѿ������˵�һ��#�е��ͻ�������������ѯ��
  • LIMIT 0�����ǿ��ٷ���һ���ռ��ϡ���Լ���ѯ���ҵõ�����е������������õġ�
  • ��ʱ���Ĵ�Сʹ��LIMIT #������Ҫ���ٿռ��������ѯ��

10.5.6 INSERT��ѯ���ٶ�

����һ����¼��ʱ����������ɣ�

  • ���ӣ�(3)
  • ���Ͳ�ѯ����������(2)
  • ������ѯ��(2)
  • �����¼����1 x ��¼��С��
  • ������������1 x ������
  • �رգ�(1)

����������е�������ʱ������ȡ��ⲻ���Ǵ򿪱��ij�ʼ����(��Ϊÿ���������еIJ�ѯ��һ��)��

���Ĵ�С��N log N (B ��)���ٶȼ��������IJ��롣

�ӿ�����һЩ������

  • �����ͬʱ��ͬһ�ͻ�����ܶ��У�ʹ�ö��ֵ����INSERT��䡣���ʹ�÷ֿ�INSERT����(��һЩ����м���)��
  • �����Ӳ�ͬ�ͻ�����ܶ��У�����ͨ��ʹ��INSERT DELAYED���õ����ߵ��ٶȡ���7.14 INSERT�䷨��
  • ע�⣬��MyISAM������ڱ���û��ɾ�����У�����SELECT:s�������е�ͬʱ�����С�
  • ����һ���ı��ļ�װ��һ����ʱ��ʹ��LOAD DATA INFILE����ͨ����ʹ�úܶ�INSERT����20������7.16 LOAD DATA INFILE�䷨��
  • �����кܶ�����ʱ���п��ܶ���Щ����ʹ��LOAD DATA INFILE����Щ��ʹ�����й��̣�
    1. ��ѡ�����CREATE TABLE������������ʹ��mysql��Perl-DBI��
    2. ִ��FLUSH TABLES�����������mysqladmin flush-tables��
    3. ʹ��myisamchk --keys-used=0 -rq /path/to/db/tbl_name���⽫�ӱ���ɾ������������ʹ�á�
    4. ��LOAD DATA INFILE�����ݲ��뵽���У��⽫�������κ���������˺ܿ졣
    5. �������myisampack������Ҫѹ������������������myisampack����10.6.3 ѹ������������
    6. ��myisamchk -r -q /path/to/db/tbl_name�ٴ����������⽫�ڽ���д�����ǰ���ڴ��д��������������������죬��Ϊ�����������Ѱ�������������Ҳ��������ƽ�⡣
    7. ִ��FLUSH TABLES�����������mysqladmin flush-tables��

    ������̽����������MySQL��ij��δ���汾��LOAD DATA INFILE��

  • �����������ı��Լ��ٲ��롣
    mysql> LOCK TABLES a WRITE;
    mysql> INSERT INTO a VALUES (1,23),(2,34),(4,33);
    mysql> INSERT INTO a VALUES (8,26),(6,29);
    mysql> UNLOCK TABLES;
    

    ��Ҫ���ٶȲ��������������������ϴ��������һ�Σ�������INSERT�����ɺ�һ�������в�ͬ��INSERT����������������������ϴ�����������һ���������������е��У������Ͳ���Ҫ������Ҳ�����Ͷ����Ӳ��Ե�����ʱ�䣬���Ƕ�ijЩ�߳����ȴ�ʱ�佫����(��Ϊ���ǵȴ���)�����磺

    thread 1 does 1000 inserts
    thread 2, 3, and 4 does 1 insert
    thread 5 does 1000 inserts
    

    ����㲻ʹ��������2��3��4����1��5ǰ��ɡ������ʹ��������2��3��4�����ܲ���1��5ǰ��ɣ���������ʱ��Ӧ�ÿ��Լ40%����ΪINSERT, UPDATE��DELETE������MySQL���Ǻܿ�ģ�ͨ��Ϊ���ڴ�Լ5���������ϵز�������һ�еĶ����������㽫��ø��õ��������ܡ���������ܶ�һ�еIJ��룬�������һ��LOCK TABLES��ż�������һ��UNLOCK TABLES(��Լÿ1000��)������������̴߳�ȡ��������Ȼ�����»�úõ����ܡ���Ȼ��LOAD DATA INFILE��װ��������Ȼ�Ǹ���ġ�

Ϊ�˶�LOAD DATA INFILE��INSERT�õ�һЩ������ٶȣ�����ؼ��ֻ���������10.2.3 ���ڷ�����������

10.5.7 UPDATE��ѯ���ٶ�

���IJ�ѯ���Ż�Ϊ��һ��д������һ��SELECT��ѯ��д�ٶ������ڱ��������ݴ�С�ͱ�����������������

ʹ���ĸ������һ���������Ƴٸ��IJ���Ȼ��һ��һ�е����ܶ���ġ����������������һ��һ�еغܶ���ı�һ����һ���졣

ע�⣬��̬��¼��ʽ�ĸ���һ���ϳ��ܳ��ļ�¼�������п���¼���������㾭����������ʱ��ʱ��OPTIMIZE TABLE�Ƿdz���Ҫ�ġ���7.9 OPTIMIZE TABLE�䷨��

10.5.8 DELETE��ѯ���ٶ�

ɾ��һ����¼��ʱ�侫ȷ�����������������ȡ�Ϊ�˸����ٵ�ɾ����¼�������������������Ĵ�С����10.2.3 ���ڷ�����������

��һ����ɾ�������б�ɾ���е�һ�󲿷�ҲҪ�öࡣ

10.6 ѡ��һ�ֱ�����

��MySQL����ǰ(�汾 3.23.5)���ܴ�һ���ٶȹ۵���4���ñ��ĸ�ʽ֮��ѡ��

��̬MyISAM
���ָ�ʽ��������ȫ�ĸ�ʽ����Ҳ���ڴ��̸�ʽ���ġ��ٶ��������������ڴ����ϱ��ҵ������׷�ʽ����������һ�������;�̬��ʽ�Ķ���ʱ�����ܼ򵥣�ֻ���г��ȳ�����������������ɨ��һ�ű�ʱ����ÿ�δ��̶�ȡ�����볣������¼�Ǻ����׵ġ���ȫ�������������д��һ����̬MyISAM�ļ�ʱ����ļ����������myisamchk�ܺ�����ָ��ÿ�����Ķ���ʼ�ͽ����������ͨ���ܻ������м�¼�����˲��ֱ�д����Ǹ���ע�⣬��MySQL�У������������ܱ��ؽ���
��̬MyISAM
���ָ�ʽ�е㸴�ӣ���Ϊÿһ�б�����һ��ͷ˵�����ж೤����һ����¼�ڸ���ʱ�䳤ʱ����Ҳ�����ڶ���һ��λ���Ͻ���������ʹ��OPTIMIZE table��myisamchk����һ�ű����������ͬһ����������ijЩVARCHAR��BLOB��������ȡ/�ı�ľ�̬���ݣ�����̬����������һ�����Ա�����Ƭ������һ�������⡣
ѹ��MyISAM
����һ��ֻ�����ͣ��ÿ�ѡ��myisampack�������ɡ�
�ڴ�(HEAP �ѣ�
���ֱ���ʽ��С��/���Ͳ��ұ�ʮ�����á��Կ���/����һ�����õIJ��ұ�(������)��һ��(Ҳ����ʱ)HEAP���п��ܼӿ��������ᡣ�ٶ�������Ҫ���������ᣬ��ͬ�����ݿ���Ҫ����ʱ�䡣
SELECT tab1.a, tab3.a FROM tab1, tab2, tab3
        WHERE tab1.a = tab2.a and tab2.a = tab3.a and tab2.c != 0;

Ϊ�˼����������ǿ���tab2��tab3�����ᴴ��һ����ʱ������Ϊ����ͬ��( tab1.a )���ҡ������Ǵ����ñ��ͽ��ѡ������

CREATE TEMPORARY TABLE test TYPE=HEAP
        SELECT
                tab2.a as a2, tab3.a as a3
        FROM
                tab2, tab3
        WHERE
                tab2.a = tab3.a and c = 0;
SELECT tab1.a, test.a3 from tab1, test where tab1.a = test.a1;
SELECT tab1.b, test.a3 from tab1, test where tab1.a = test.a1 and something;

10.6.1 ��̬(����)�����ص�

  • ����ȱʡ��ʽ�������ڱ�������VARCHAR��BLOB��TEXT��ʱ��
  • ���е�CHAR��NUMERIC��DECIMAL�г���п��ȡ�
  • �dz��졣
  • ���׻��塣
  • �����ڱ������ؽ�����Ϊ��¼λ�ڹ̶���λ�á�
  • ���ر�������֯(��myisamchk)������һ�������ļ�¼��ɾ����������Ҫ�黹���д��̿ռ������ϵͳ��
  • ͨ���ȶ�̬����Ҫ����Ĵ��̿ռ䡣

10.6.2 ��̬�����ص�

  • ����������κ�VARCHAR��BLOB��TEXT�У�ʹ�øø�ʽ��
  • �����ַ������Ƕ�̬��(������Щ���Ȳ���4����)��
  • ÿ����¼ǰ��һ��λͼ�����ַ�����ָ���ĸ����ǿյ�('')������������ĸ�����(�ⲻͬ�ڰ���NULLֵ����)������ַ�������ɾ��β���հ׺����㳤�ȣ�������������ֵ������λͼ�б�Dz��Ҳ����浽�����ϡ��ǿ��ַ����洢Ϊһ�������ֽڼ��ַ������ݡ�
  • ͨ���ȶ�����ռ����Ĵ��̿ռ䡣
  • ÿ����¼��ʹ������Ŀռ䡣���һ����¼��ø���������Ҫ���п���Σ��⵼�¼�¼��Ƭ��
  • ������볬���г��ȵ���Ϣ�����У��н����ֶΡ�����������У�����ܱ���ʱʱ����myisamchk -r��ʹ���ܸ��á�ʹ��myisamchk -ei tbl_name��һЩͳ�ơ�
  • �ڱ����������ؽ�����Ϊһ����¼�����Ƿֺܶ�β���һ������(��Ƭ)���Զ�ʧ��
  • �Զ�̬�ߴ��¼�������г����ǣ�
    3
    + (number of columns + 7) / 8
    + (number of char columns)
    + packed size of numeric columns
    + length of strings
    + (number of NULL columns + 7) / 8
    

    ��ÿ��������6���ֽڵijͷ������ۺ�ʱ���������¼������һ����̬��¼�����ӡ�ÿ�������ӽ�������20���ֽڣ������һ���󽫿�����ͬһ�����С�������ǣ���������һ�����ӡ��������myisamchk -ed����ж������ӡ����е����ӿ����� myisamchk -r ɾ����

10.6.3 ѹ�������ص�

  • һ����myisampackʵ�ó���������ֻ���������о���MySQL��չ�����ʼ�֧�ֵĿͻ�����Ϊ���ڲ�ʹ�ñ���һ��myisampack������
  • ��ѹ���������������MySQL�ַ����Ա�����û��myisampack�Ŀͻ��ܶ�ȡ��myisampackѹ���ı���
  • ռ�ݺ�С�Ĵ��̿ռ䣬ʹ����ʹ����������С��
  • ÿ����¼������ѹ��(��С�Ĵ�ȡ����)����һ����¼��ͷ�Ƕ�����(1-3 �ֽ�)��ȡ���ڱ������ļ�¼��ÿ���Բ�ͬ��ʽ��ѹ����һЩѹ�������ǣ�
    • ͨ����ÿ����һ�Ų�ͬ�Ĺ���������
    • ��׺�հ�ѹ����
    • ǰ׺�հ�ѹ����
    • ��ֵ0������ʹ��1λ�洢��
    • ��������е�ֵ��һ��С��Χ����ʹ����С�Ŀ����������洢�����磬������е�ֵ��0��255�ķ�Χ��һ��BIGINT��(8���ֽ�)������Ϊһ��TINYINT��(1�ֽ�)�洢��
    • ����н��п���ֵ��һ��С���ϣ������ͱ��任��ENUM��
    • �п���ʹ�������ѹ����������ϡ�
  • �ܴ���������̬���ȵļ�¼��Ȼ�����ܴ���BLOB��TEXT�С�
  • ����myisamchk��ѹ����

MySQL��֧�ֲ�ͬ���������ͣ�����һ���������ISAM������һ��B�������������ܴ��Ե�Ϊ�����ļ������СΪ(key_length+4)*0.67�������еļ��ϵ��ܺ͡������Ƕ������������м�������˳�򱻲���ʱ����

�ַ��������ǿհ�ѹ���ġ������һ������������һ���ַ�������Ҳ��ѹ��ǰ׺������ַ������кܶ�β���հ׻���һ���ܲ����õ�ȫ����VARCHAR�У��հ�ѹ��ʹ�����ļ���С������ܶ��ַ�������ͬ��ǰ׺��ǰ׺ѹ�����а����ġ�

10.6.4 �ڴ�����ص�

�����ӽ��������ڴ��У�������mysqld���ص�����������ǽ���ʧ��������Ϊ���������죬�����������������õġ�

MySQL�ڲ���HEAP��ʹ��û���������100%��̬��ϣ����û����ɾ���йص����⡣

��ֻ��ͨ��ʹ���ڶѱ��е�һ���������õ�ʽ��ȡ����(ͨ����=������)��

�ѱ���ȱ���ǣ�

  1. ��ҪΪ����Ҫͬʱʹ�õ����жѱ���Ҫ�㹻�Ķ����ڴ档
  2. �㲻����������һ��������������
  3. �㲻��˳��������һ����Ŀ(��ʹ�����������һ��ORDER BY)��
  4. MySQLҲ���������2��ֵ֮�����ж����С��ⱻ�Ż���ʹ��������ʹ���ĸ���������������һ������������Ҫ����Ѱ����

10.7 �����Ż�����

�Լӿ�ϵͳ��δ����Ľ����ǣ�

  • ʹ�ó־õ��������ݿ��Ա������ӿ�����
  • ���Ǽ���������ѯ��ȷʵʹ�������ڱ��д����˵���������MySQL�У��������EXPLAIN������������7.22 EXPLAIN�䷨(�õ�����SELECT����Ϣ)��
  • ���Ա����ڱ������˺ܶ�ı��ϵĸ��ӵ�SELECT��ѯ����������������йص����⡣
  • ��һЩ����£�ʹ�û����������������е���Ϣ����һ���� ��ϣ�����������塣������н϶̲����к�����Ψһֵ�������Ա����������ϵ�һ����������Щ����MySQL�У�������ʹ����������У�SELECT * from table where hash='calculated hash on col1 and col2' and col_1='constant' and col_2='constant' and .. ��
  • �����кܶ���ĵı�����Ӧ�����ű�������VARCHAR��BLOB�С�ֻҪ��ʹ�õ���VARCHAR��BLOB�У��㽫�õ���̬�г��ȡ���9.4 MySQL��������
  • ֻ����Ϊ��̫�󣬷ָ�һ�ű�Ϊ��ͬ�ı�һ��û��ʲô�ô���Ϊ�˴�ȡ�У���������������Ǵ���Ѱ�����ҵ��еĵ�һ���ֽڡ����ҵ����ݺ󣬴�������ʹ��̶Դ����Ӧ�ó�����˵�㹻�죬�ܶ��������С���ȷʵ�б�Ҫ�ָ��Ψһ����������䶯̬�гߴ�ı�(������)�ܱ�Ϊ�̶����д�С����������Ƶ������Ҫɨ����������Ҫ������С���9.4 MySQL��������
  • �����ܾ�������Ҫ�������Ժܶ��е���Ϣ����(�����)������һ���±���ʵʱ���¼��������ܸ���һЩ�����͵ĸ���UPDATE table set count=count+1 where index_column=constant�Ǻܿ�ģ�����ʹ����MySQL������ֻ�б�������(���ض�/����д)�����ݿ�ʱ����ȷʵ��Ҫ����Ҳ��������������ݿ�Ϻõ����ܣ���Ϊ����������������������н��ٵ�����Ҫ���� 11111111111111111111111
  • �������Ҫ�Ӵ�ļ�¼�ļ������ռ�ͳ����Ϣ��ʹ���ܽ��Եı�������ɨ����������ά���ܽ�Ӧ�ñȳ�������ʵʱ��ͳ��Ҫ��Щ�����б仯�����DZ���ı����е�Ӧ��ʱ���Ӽ�¼�ļ����������µ��ܽ��(ȡ����ҵ�����)Ҫ����ˣ�
  • ������ܣ�Ӧ�ý��������Ϊ��ʵʱ����ͳ�ơ�������ͳ�Ʊ�����������ݽ������ڴ�ʵ�����ݲ������ܽ���в�����
  • �����������ȱʡֵ����ʵ����������ֵ��ͬ��ȱʡֵʱ��ֻ����ȷ�ز���ֵ�������MySQL��Ҫ�����﷨�������ҸĽ������ٶȡ�
  • ��һЩ����£���װ���洢���ݵ�һ��BLOB���Ǻܷ���ġ�����������£�����������Ӧ�������Ӷ���Ĵ��������/���BLOB�еĶ������������ַ���������ijЩ�׶ν�ʡ�ܶ��ȡ�������в����Ͼ�̬�ı��ṹ������ʱ�����ʵ�á�
  • ��һ������£���Ӧ�ó����Ե�����ʽ�������ݣ������������Ҫ��Щ�Ի�ø�����ٶȣ���Ӧ�ò��õ����ظ��򴴽��ܽ����
  • �洢���̻�UDF(�û����庯��)�����ǻ�ø������ܵ�һ���÷�����Ȼ�������ʹ��ijЩ��֧���������ݿ⣬����������У���Ӧ����������һ������(������)����Щ��
  • ��������ͨ�������Ӧ�ó����л����ѯ/�𰸲�����ͬʱ���ܶ����/���������һЩ�ô������������ݿ�֧��������(��MySQL��Oracle)����Ӧ��������ȷ���������������и��º�ֻ���һ�Ρ�
  • ���㲻֪����ʱд���������ʱ��ʹ��INSERT /*! DELAYED */����ӿ촦������Ϊ�ܶ��¼������һ�δ���д�뱻д�롣
  • ������Ҫ�����ѡ���Եø���Ҫʱ��ʹ��INSERT /*! LOW_PRIORITY */��
  • ʹ��SELECT /*! HIGH_PRIORITY */��ȡ��������е�ѡ�����Ǽ�ʹ���˵ȴ���һ��д��ҲҪ��ɵ�ѡ��
  • ʹ�ö���INSERT������洢�ܶ���һ��SQL�������(����SQL������֧��������
  • ʹ��LOAD DATA INFILEװ�ؽϴ����������ݡ����һ��IJ���첢�ҵ�myisamchk������mysqld��ʱ�����������졣
  • ʹ��AUTO_INCREMENT�й���Ψһֵ��
  • ��ʹ�ö�̬����ʽʱ��ż��ʹ��OPTIMIZE TABLE�Ա�����Ƭ����7.9O PTIMIZE TABLE�䷨��
  • ����ʱʹ��HEAP���Եõ�������ٶȡ���9.4 MySQL��������
  • ��ʹ��һ������Web����������ʱ��ͼ��Ӧ����Ϊ�ļ��洢����������ݿ��д洢��һ���ļ������á�����������Ҫԭ������һ��������Web�������ڻ����ļ������ݿ�����Ҫ�õö࣬������������ʹ���ļ��������׵õ�һ���Ͽ��ϵͳ��
  • �Ծ�����ȡ�IJ���Ҫ����(���йض�û��cookie�û������ʾ�������Ϣ��ʹ���ڴ����
  • �ڲ�ͬ���о�����ͬ��Ϣ����Ӧ�ñ�����Ϊ��ͬ�IJ�����ͬ�����֡��ڰ汾 3.23 ǰ����ֻ�ܿ����������ᡣ����ʹ���ּ򵥻�(�ڿͻ�����ʹ��name������customer_name)��Ϊ��ʹ�����������ֲ������SQL����������Ӧ��ʹ���Ƕ���18 ���ַ���
  • �������Ҫȷʵ�ܸߵ��ٶȣ���Ӧ���о�һ�²�ͬSQL������֧�ֵ����ݴ洢�ĵײ�ӿڣ�����ֱ�Ӵ�ȡMySQL MyISAM������ʹ��SQL �ӿڣ����ܵõ�2-5�����ٶ�������Ȼ��Ϊ���������������ݱ���������Ӧ�ó�������ͬһ̨�����ķ������ϣ�����ͨ����ֻӦ�ñ�һ�����̴�ȡ(��Ϊ�ⲿ�ļ�����ȷʵ����)��ͨ����MySQL�������������ײ�MyISAM������������������(�����Ҫ��������ǻ�ø������ܵ�һ�����׵ķ���)������������Ƶ����ݿ�ӿڣ�Ӧ���൱����֧�������Ż���
  • ����������£���һ�����ݿ��ȡ����(ʹ��һ��ʵʱ����)�ȴ�ȡһ���ı��ļ���Щ��ֻ����Ϊ���ݿ���ı��ļ�������(�����ʹ����������)�����⽫�漰���ٵĴ��̴�ȡ����Ҳ��ʡ���룬��Ϊ�㲻���������ı��ļ����ҳ��к��еı߽硣
  • ��Ҳ��ʹ�ø��Ƽ��١���19.1 ���ݿ⸴����

10.8 ʹ�����Լ��Ļ�׼����

�����Ӧ�ò������Ӧ�ó�������ݿ⣬�Է���ƿ�����Ķ���ͨ��������(��ͨ����һ������ģ�顱����ƿ��)����������ȷ����һ��ƿ��(�ȵ�)����ʹ�����Ӧ�ó�����˵���������ܡ��㹻�á���������Ӧ�ö�ÿ��ƿ����һ�����ƻ��������ij�ˡ�ȷʵ��Ҫ������������ν������

����һЩ����ֲ�Ļ�׼��������ӣ��μ�MySQL��׼�׼�����11 MySQL ��׼�׼���������������׼����κγ�����Ϊ�����Ҫ�޸�����ͨ�������������ܳ��Բ�ͬ���������Ľ��������������һ�����������Ľ��������

��ϵͳ���ط���ʱ����һЩ�����Ǻ��ձ�ģ����������кܶ���������ϵ�Ŀͻ�������������ϵͳ����һ��(����)ϵͳ�����и������⡣��ĿǰΪֹ����һ����Щ����������������йص�����(��ɨ���ڸ߸���ʱ���ֲ���)��OS/�����⡣���ϵͳ�Ѿ���������ϵͳ�У����Ǵ������������������

Ϊ�˱������������⣬��Ӧ�ð�һЩ���������ڿ�����ĸ����²����������Ӧ�ã�

10.9 ���ѡ��

MySQL�ڷֿ����ļ��д洢�����ݺ��������ݡ�����(����ȫ��)�������ݿ���ͬһ���ļ��л���к��������ݡ��������ţ�MySQL��ѡ��Էdz��㷺���ִ�ϵͳ����˵�ǽϺõġ�

�洢�����ݵ���һ����������һ���ֿ������򱣴�ÿ����Ϣ(������SDBM��Focus)���⽫��ÿ����ȡ����һ�еIJ�ѯ���һ������ͻ�ơ���Ϊ�ڶ���һ�б���ȡʱ��������˻��������������ģ�Ͷ�ͨ�ù��ܵ����ݿⲻ����á�

������������������������һ�𱻴洢(����Oracle/Sybase)������������У��㽫��������Ҷ��ҳ�����ҵ�����Ϣ�����Ⲽ�ֵĺô����������������(ȡ����������������������)��ʡһ�δ��̶������Ⲽ�ֵĻ����ǣ�

  • ��ɨ���������Ϊ�������������Ի�����ݡ�
  • ����ʧ�ܶ�ռ䣬��Ϊ������ظ����Խڵ������(��Ϊ�㲻���ڽڵ��ϴ洢�У�
  • ɾ������ʱ��仯�����ݿ��(��Ϊ�ڵ��е�������ɾ����ͨ����������)��
  • �㲻�ܽ�ʹ��������Ϊһ����ѯ�������ݡ�
  • �������ݺ��ѻ��塣

10.10 MySQL��ƾ���/����

��ΪMySQLʹ�ü���ı�����(��ζ�/һ��д)�����µ������������ͬһ�����е�һ��������ȶ�������������ѡ���һ����ϡ�

�������ţ�����������£��Դ����ϵͳ���쳣���ٵ�����ʹ����Ϊһ��Ӯ�ҡ���������ͨ��Ҳ����ͨ�����Ķ�������������������Ҫ�������������Ӳ����

��һЩ������Ӧ�û���������Ҳ�ڿ���һЩ��չ�����Խ�������⡣

10.11 ����ֲ��

��Ϊ����SQL������ʵ����SQL�IJ�ͬ���֣�Ҫ�������д����ֲ��SQLӦ�ó��򡣶Ժܼ򵥵�ѡ��/���룬���Ǻ����׵ģ���������ҪԽ�࣬��Խ���ѣ������������ҪӦ�ó���Ժܶ����ݿⶼ�죬����ø��ѣ�

Ϊ��ʹһ������Ӧ�ó������ֲ������Ҫѡ����Ӧ����֮�����ĺܶ�SQL��������

������ʹ��MySQL��crash-me ����http://www.mysql.com/crash-me-choose.htmy�����ҳ�������֮ʹ�õ����ݿ��������ѡ��ĺ��������ͺ����ơ�crash-me���ڶ��κο��ܵ���������˺ܳ�ʱ�䣬��������Ȼ������Թ��Ĵ�Լ450�����顣

���磬�������Ҫ��ʹ��Informix �� DB2���㲻Ӧ���б�18���ַ�������������

MySQL��׼�����crash-me�Ƕ��������ݿ�ġ�ͨ���۲�������ô�����������ܵõ�һ���о��������Ϊ��д��Ķ��������ݿ��Ӧ�ó�����ʲô����׼��������MySQLԴ����ַ�����sql-bench��Ŀ¼���ҵ���������DBI���ݿ�ӿ���Perlд��(���������Ĵ�ȡ����)��

��http://www.mysql.com/benchmark.html�������׼�Ľ����

�����������Щ����������������������ݿⶼ��һЩ���㡣��������Dz�ͬ��������Ե��µIJ�ͬ��Ϊ��

�����Ϊ���ݿ�Ķ����Զ�Ŭ��������Ҫ���ÿ��SQL������ƿ�������ø��ܡ�MySQL�ڼ����͸��·���ܿ죬������ͬһ�����ϻ�϶���/д�߷��潫��һ�����⡣����һ���棬������ͼ��ȡ����������˵���ʱ��Oracle��һ���ܴ�����(ֱ�����DZ���յ�������)���������ݿ��ܵ���˵�ڴӼ�¼�ļ����������ܽ�����Ǻܺã���Ϊ����������£��м���������û�ô���

Ϊ��ʹ���Ӧ�ó���ȷʵ���������ݿ⡱������Ҫ����һ�����׵Ŀ���չ�Ľӿڣ�������ɲ���������ݡ���ΪC++�ڴ����ϵͳ�Ͽ��Եõ��ģ�ʹ�����ݿ��һ��C++ ��ӿ���������ġ�

�����ʹ��һЩij�����ݿ��ض��Ĺ���(��MySQL�У���REPLACE����)����Ӧ��ΪSQL����������һ��������ʵ��ͬ���Ĺ��� (������Щ)����MySQL������ʹ��/*! */�﷨��MySQL�ض��Ĺؼ��ʼӵ���ѯ�С���/**/�еĴ��뽫�����������SQL��������Ϊһƪע��(������)��

�����������ı�׼ȷ�Ը���Ҫ��������һЩwebӦ�ó���������һ�ֿ������Ǵ���һ��Ӧ�ò㣬�������еĽ���Ը�����ߵ����ܡ�ͨ��ֻ�����ϵĽ���ڶ�ʱ��󡮹��ڡ������ܱ��ֻ��������ˢ�¡����ڼ��߸��ص���������൱�����ģ��ڴ�����£����ܶ�̬�����ӻ��浽�������趨�ϸߵĹ���ʱ��ֱ��һ�лص�������

����������£�������Ϣ�ı�Ӧ�ð��������ʼ��С�ͱ�һ��Ӧ�ñ�ˢ�¼��ε���Ϣ��

10.12 �����ѽ�MySQL���ںδ���

��MySQL��������ڼ䣬MySQL�Ĺ����ʺ����ǵ����ͻ�������Ϊ������һЩ���������̴������ݲֿ⡣

���Ǵ������̵�õ����к��������׵�ÿ���ܽᲢ�����DZ�����Ϊ���е����ṩ���õ���Ϣ�԰������ǵó����ǵĹ��ս���Ӱ�����ǵĹ˿͡�

�������൱������(��Լÿ��7�����ڽ����ܽ�)�������DZ���4-10������������Ҫ���ָ��û�������ÿ�ܹ˿�����õ�����������Ҫ�����̡��������Ը����ݵ��±��档

����ͨ��ÿ�½�������Ϣ�洢��ѹ���ġ����ס��������������������һ�׼򵥵ĺ�/�ű������������Խ��ױ��IJ�ͬ����( ��Ʒ�飬�˿�id���̵�...)���ܽ������������һ�������﷨������ҳ��Сperl�ű���̬���ɵ���ҳ���ڽű���ִ��SQL��䲢�Ҳ��������������Ǻ���ʹ��PHP��mod_perl��������ʱ����û�С�

��ͼ�����ݣ�������C���Ա�д��һ���򵥵Ĺ��ߣ����ܻ���SQL��ѯ�Ľ��(�Խ����һЩ����)������Ʒ����Ҳ�ӷ���HTML�ļ���perl�ű��ж�̬��ִ�С�

�ڴ��������£�һ���µı���ͨ���򵥵ظ���һ�����нű������޸����е�SQL��ѯ����ɡ���һЩ����£����ǽ���Ҫ�Ѹ�����ֶμӵ�һ�����е��ܽ���л����һ���µģ�������Ҳ�൱�򵥣���Ϊ�����ڴ����ϱ������н��ױ�����Ŀǰ����������50G�Ľ��ױ���200G�������˿�����)��

����Ҳ�����ǵĹ˿�ֱ����ODBC��ȡ�ܽ���Ա�߼��û����Լ��������ݡ�

�����÷dz��е���Sun Ultra sparcstation ( 2x200 Mz )��������û���κ����⡣������������˷�����֮һ��һ̨2��CPU 400 Mz��Ultra sparc�������������ڼƻ�������Ʒ���Ľ��ף��⽫��ζ����������10����������Ϊ������ͨ��ֻ��Ϊ���ǵ�ϵͳ���Ӹ���Ĵ��̾��ܸ�������

����Ҳ������Intel-Linux�Ա��ܸ����˵صõ������cpu��������Ȼ�����ж����ƿ���ֲ�����ݿ��ʽ(��3.32������)�����ǽ���ʼ��Ӧ�ó����ijЩ����ʹ������

��������ĸо���Linux�ڵ͵��еȸ���ʱִ�еĽϺã������㿪ʼ�õ����µĸ߸���ʱ��Solaris�����ָ��ã���Ϊ����IO�ļ��ޣ��������ǻ�û�й����ⷽ����κν��ۡ�����һЩLinux���Ŀ����ߵ������Ժ�������� Linux �ĸ����ã�������������̫�����Դʹ�ý��������ܱ�úܵ͡���������������ڽ���ʱ����ʹ�����о��������޷�Ӧ��ϣ���⽫��δ����Linux�ں��н����


��һ��, ǰһ��, ��һ��, ���һ����Ŀ¼.

��������  ����Linux