| 1.
½éÉÜ
Éí´¦MySQLÕâ¸öȦ×Ó£¬Äܹ»ÇÐÉíµØ¸ÐÊܵ½´ó¼Ò¶ÔMySQL 5.7µÄÆÚ´ýºÍÈÈÇé£¬ËÆºõÿ¸öÈ˶¼ÆÈ²»¼°´ýµÄÏëÒªÁ˽⡢ѧϰºÍʹÓÃMySQL
5.7¡£ÄÇô£¬ÎÒÃDz»½ûÒªÎÊ£¬MySQL 5.7µ½µ××öÁËÄÄЩ¸Ä½ø£¬ÒýÈëÁËÄÄЩй¦ÄÜ£¬ÐÔÄÜÓÖÌáÉýÁ˶àÉÙ£¬Äܹ»Èôó¼ÒÇÌÊ×ÒÔÅΣ¬ÉõÖÁ»¶ºôÈ¸Ô¾ÄØ£¿
ÏÂÃæ¾Í¸úËæÎÒÀ´Ò»ÆðÁ˽âÒ»ÏÂMySQL 5.7µÄ²¿·Öй¦ÄÜ¡£ÏëÒªÔÚһƪÎÄÕÂÖнéÉÜÍêMySQL 5.7µÄËùÓиĽø£¬¼¸ºõÊDz»¿ÉÄܵġ£ËùÒÔ£¬ÎÒ»áÑ¡ÔñһЩÓÐÌØ±ðÒâ˼µÄ¡¢ÌرðÓÐÓõŦÄܽøÐнéÉÜ¡£Ï£Íûͨ¹ýÕâÆªÎÄÕ£¬Äܹ»¼¤·¢´ó¼Ò¶ÔMySQL
5.7µÄѧϰÐËȤ£¬ÉõÖÁÄܹ»ÎüÒý´ó¼Ò½«×Ô¼ºµÄÒµÎñÇ¨ÒÆµ½MySQL 5.7ÉÏ¡£
MySQL 5.7ÔÚÖî¶à·½Ãæ¶¼½øÐÐÁË´ó·ùµÄ¸Ä½ø£¬±¾ÎĽ«´Ó°²È«ÐÔ£¨¼û2.1½Ú£©¡¢Áé»îÐÔ£¨¼û2.2½Ú£©¡¢Ò×ÓÃÐÔ£¨¼û2.3½Ú£©¡¢¿ÉÓÃÐÔ£¨¼û2.4½Ú£©ºÍÐÔÄÜ£¨¼û2.5½Ú£©µÈ¼¸¸ö·½Ãæ½øÐнéÉÜ¡£×îºó£¬ÔÚµÚ3½Ú¶Ô±¾ÎĽøÐÐÁ˼òµ¥µÄ×ܽᡣ
2. MySQL 5.7µÄÐÂÌØÐÔ
ÕâÒ»½ÚÖУ¬½«ÒÀ´Î½éÉÜMySQL 5.7µÄ¸÷ÖÖÐÂÌØÐÔ¡£ÓÉÓÚMySQL 5.7¸Ä½ø½Ï¶à£¬Òò´Ë£¬±¾ÎĽ«ÕâЩÐÂÌØÐÔ½øÐÐÁ˼òµ¥µÄ·ÖÀ࣬·ÖΪ°²È«ÐÔ¡¢Áé»îÐÔ¡¢Ò×ÓÃÐÔ¡¢¿ÉÓÃÐÔºÍÐÔÄÜ¡£½ÓÏÂÀ´£¬½«´Ó¸÷¸ö·ÖÀàÒÀ´Î½øÐнéÉÜ¡£
2.1 °²È«ÐÔ
°²È«ÐÔÊÇÊý¾Ý¿âÓÀºãµÄ»°Ì⣬ÔÚMySQL 5.7ÖУ¬Óв»ÉÙ°²È«ÐÔÏà¹ØµÄ¸Ä½ø¡£°üÀ¨£º
MySQLÊý¾Ý¿â³õʼ»¯Íê³ÉÒԺ󣬻á²úÉúÒ»¸ö root@localhost
Óû§£¬´ÓMySQL 5.7¿ªÊ¼£¬rootÓû§µÄÃÜÂë²»ÔÙÊǿգ¬¶øÊÇËæ»ú²úÉúÒ»¸öÃÜÂ룬ÕâÒ²µ¼ÖÂÁËÓû§°²×°5.7ʱ·¢ÏÖµÄÓë5.6°æ±¾±È½Ï´óµÄÒ»¸ö²»Í¬µã
MySQL¹Ù·½ÒѾɾ³ýÁËtestÊý¾Ý¿â£¬Ä¬Èϰ²×°ÍêºóÊÇûÓÐtestÊý¾Ý¿âµÄ£¬¾ÍËãÓû§´´½¨ÁËtest¿â£¬Ò²¿ÉÒÔ¶Ôtest¿â½øÐÐȨÏÞ¿ØÖÆÁË
MySQL 5.7°æ±¾ÌṩÁ˸üΪ¼òµ¥SSL°²È«·ÃÎÊÅäÖ㬲¢ÇÒĬÈÏÁ¬½Ó¾Í²ÉÓÃSSLµÄ¼ÓÃÜ·½Ê½
¿ÉÒÔΪÓû§ÉèÖÃÃÜÂë¹ýÆÚ²ßÂÔ£¬Ò»¶¨Ê±¼äÒÔºó£¬Ç¿ÖÆÓû§ÐÞ¸ÄÃÜÂë
ALTER USER 'jeffrey'@'localhost' PASSWORD EXPIRE INTERVAL
90 DAY;
¿ÉÒÔ¡±Ëø¡±×¡Óû§£¬ÓÃÒÔÔÝʱ½ûÓÃij¸öÓû§
ALTER USER 'jeffrey'@'localhost' ACCOUNT LOCK;
ALTER USER l 'jeffrey'@'localhost' ACCOUNT UNLOCK;
2.2 Áé»îÐÔ
ÔÚÕâÒ»½Ú£¬ÎÒ½«½éÉÜMySQL 5.7µÄÁ½¸öÈ«ÐµĹ¦ÄÜ£¬¼´JSONºÍgenerate column¡£³ä·ÖʹÓÃÕâÁ½¸ö¹¦ÄÜ£¬Äܹ»¼«´óµØÌá¸ßÊý¾Ý´æ´¢µÄÁé»îÐÔ¡£
2.2.1 JSON
Ëæ×ŷǽṹ»¯Êý¾Ý´æ´¢ÐèÇóµÄ³ÖÐøÔö³¤£¬¸÷Öַǽṹ»¯Êý¾Ý´æ´¢µÄÊý¾Ý¿âÓ¦Ô˶øÉú£¨ÈçMongoDB£©¡£´Ó×îеÄÊý¾Ý¿âʹÓÃ
ÅÅÐаñ À´¿´£¬MongoDBÒѾ³¬¹ýÁËPostgreSQL£¬Æä»ðÈȳ̶ȿɼûÒ»°ß¡£
¸÷´ó¹ØÏµÐÍÊý¾Ý¿âÒ²²»¸ÊʾÈõ£¬·×·×Ìṩ¶ÔJSONµÄÖ§³Ö£¬ÒÔÓ¦¶Ô·Ç½á¹¹»¯Êý¾Ý¿âµÄÌôÕ½¡£MySQLÊý¾Ý¿â´Ó5.7.8°æ±¾¿ªÊ¼£¬Ò²ÌṩÁ˶ÔJSONµÄÖ§³Ö¡£ÆäʹÓ÷½Ê½ÈçÏ£º
CREATE TABLE t1 (jdoc JSON); INSERT INTO t1 VALUES('{"key1": "value1", "key2": "value2"}');
|
MySQL¶ÔÖ§³ÖJSONµÄ×ö·¨ÊÇ£¬ÔÚserver²ãÌṩÁËÒ»¶Ñ±ãÓÚ²Ù×÷JSONµÄº¯Êý£¬ÖÁÓÚ´æ´¢£¬¾ÍÊǼòµ¥µØ½«JSON±àÂë³ÉBLOB£¬È»ºó½»ÓÉ´æ´¢ÒýÇæ²ã½øÐд¦Àí£¬Ò²¾ÍÊÇ˵£¬MySQL
5.7µÄJSONÖ§³ÖÓë´æ´¢ÒýÇæÃ»ÓйØÏµ£¬MyISAM ´æ´¢ÒýÇæÒ²Ö§³ÖJSON ¸ñʽ¡£
MySQLÖ§³ÖJSONÒÔºó£¬×ÜÊDZÜÃâ²»ÁËÄÃÀ´ÓëMongoDB½øÐÐһЩ±È½Ï¡£µ«ÊÇ£¬MySQL¶ÔJSONµÄÖ§³Ö£¬ÖÁÉÙÓÐÁ½µãÄܹ»ÍêʤMongoDB£º
1.¿ÉÒÔ»ìºÏ´æ´¢½á¹¹»¯Êý¾ÝºÍ·Ç½á¹¹»¯Êý¾Ý£¬Í¬Ê±ÓµÓйØÏµÐÍÊý¾Ý¿âºÍ·Ç¹ØÏµÐÍÊý¾Ý¿âµÄÓŵã
2.Äܹ»ÌṩÍêÕûµÄÊÂÎñÖ§³Ö
2.2.2 generate column
generated columnÊÇMySQL 5.7ÒýÈëµÄÐÂÌØÐÔ£¬Ëùνgenerated column£¬¾ÍÊÇÊý¾Ý¿âÖÐÕâÒ»ÁÐÓÉÆäËûÁмÆËã¶øµÃ¡£
ÀýÈ磬֪µÀÖ±½ÇÈý½ÇÐεÄÁ½ÌõÖ±½Ç±ß£¬ÒªÇóÖ±½ÇÈý½ÇÐεÄÃæ»ý¡£ºÜÃ÷ÏÔ£¬Ãæ»ý¿ÉÒÔͨ¹ýÁ½ÌõÖ±½Ç±ß¼ÆËã¶øµÃ£¬ÄÇô£¬Õâʱºò¾Í¿ÉÒÔÔÚÊý¾Ý¿âÖÐÖ»´æ·ÅÖ±½Ç±ß£¬Ãæ»ýʹÓÃgenerated
column£¬ÈçÏÂËùʾ£º
CREATE TABLE triangle (sidea DOUBLE, sideb DOUBLE, area DOUBLE AS (sidea * sideb / 2)); insert into triangle(sidea, sideb) values(3, 4); select * from triangle; +-------+-------+------+ | sidea | sideb | area | +-------+-------+------+ | 3 | 4 | 6 | +-------+-------+------+
|
ÔÚMySQL 5.7ÖУ¬Ö§³ÖÁ½ÖÖgenerated column£¬¼´virtual generated
columnºÍstored generated column£¬Ç°ÕßÖ»½«generated column±£´æÔÚÊý¾Ý×ÖµäÖУ¨±íµÄÔªÊý¾Ý£©£¬²¢²»»á½«ÕâÒ»ÁÐÊý¾Ý³Ö¾Ã»¯µ½´ÅÅÌÉÏ£»ºóÕ߻Ὣgenerated
column³Ö¾Ã»¯µ½´ÅÅÌÉÏ£¬¶ø²»ÊÇÿ´Î¶ÁÈ¡µÄʱºò¼ÆËãËùµÃ¡£ºÜÃ÷ÏÔ£¬ºóÕß´æ·ÅÁË¿ÉÒÔͨ¹ýÒÑÓÐÊý¾Ý¼ÆËã¶øµÃµÄÊý¾Ý£¬ÐèÒª¸ü¶àµÄ´ÅÅ̿ռ䣬Óëvirtual
columnÏà±È²¢Ã»ÓÐÓÅÊÆ¡£Òò´Ë£¬ÔÚ²»Ö¸¶¨generated columnµÄÀàÐÍʱ£¬Ä¬ÈÏÊÇvirtual
column£¬ÈçÏÂËùʾ£º
show create table triangle\G *************************** 1. row *************************** Table: triangle Create Table: CREATE TABLE `triangle` ( `sidea` double DEFAULT NULL, `sideb` double DEFAULT NULL, `area` double GENERATED ALWAYS AS (((`sidea` * `sideb`) / 2)) VIRTUAL ) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
Èç¹û¶ÁÕß¾õµÃgenerate columnÌṩµÄ¹¦ÄÜ£¬Ò²¿ÉÒÔÔÚÓû§´úÂëÀïÃæÊµÏÖ£¬²¢Ã»ÓÐʲôÁ˲»ÆðµÄµØ·½£¬ÄÇô£¬»òÐí»¹ÓÐÒ»¸ö¹¦ÄÜÄܹ»ÎüÒýÌôÌÞµÄÄ㣬ÄǾÍÊÇΪgenerate
column´´½¨Ë÷Òý¡£ÔÚÕâ¸öÀý×ÓÖУ¬Èç¹ûÎÒÃÇÐèÒª¸ù¾ÝÃæ»ý´´½¨Ë÷ÒýÒÔ¼Ó¿ì²éѯ£¬¾ÍÎÞ·¨ÔÚÓû§´úÂëÀïÃæÊµÏÖ£¬Ê¹ÓÃgenerate
column¾Í±äµÃ·Ç³£¼òµ¥£º
alter table triangle add index ix_area(area);
2.3 Ò×ÓÃÐÔ
Ò×ÓÃÐÔÊÇÊý¾Ý¿âÓÀºãµÄ»°Ì⣬MySQLÒ²ÔÚ³ÖÐø²»¶ÏµØÌá¸ßÊý¾Ý¿âµÄÒ×ÓÃÐÔ¡£ÔÚMySQL 5.7ÖУ¬ÓкܶàÒ×ÓÃÐÔ·½ÃæµÄ¸Ä½ø£¬Ð¡µ½Ò»¸ö¿Í»§¶Ë¿ì½Ý¼ü
ctrl+c µÄʹÓ㬴óµ½×¨ÃÅÌṩһ¸öϵͳ¿â(sys)À´°ïÖúDBAºÍ¿ª·¢ÈËԱʹÓÃÊý¾Ý¿â¡£ÕâÒ»½Ú½«Öصã½éÉÜMySQL
5.7ÒýÈëµÄsys¿â¡£
ÔÚlinuxÏ£¬ÎÒÃǾ³£Ê¹Óà ctrl+c À´ÖÕÖ¹Ò»¸öÃüÁîµÄÔËÐУ¬ÔÚMySQL
5.7 ֮ǰ£¬Èç¹ûÓû§ÊäÈëÁË´íÎóµÄSQLÓï¾ä£¬°´Ï ctrl+c £¬ËäÈ»Äܹ»¡±½áÊø¡±SQLÓï¾äµÄÔËÐУ¬µ«ÊÇ£¬Ò²»áÍ˳öµ±Ç°»á»°£¬MySQL
5.7¶ÔÕâһΥ·´Ö±¾õµÄµØ·½½øÐÐÁ˸Ľø£¬²»ÔÙÍ˳ö»á»°¡£
MySQL 5.7¿ÉÒÔexplainÒ»¸öÕýÔÚÔËÐеÄSQL£¬Õâ¶ÔÓÚDBA·ÖÎöÔËÐÐʱ¼ä½Ï³¤µÄÓï¾ä½«»á·Ç³£ÓÐÓÃ
ÔÚMySQL 5.7ÖУ¬performance_schemaÌṩÁ˸ü¶à¼à¿ØÐÅÏ¢£¬°üÀ¨ÄÚ´æÊ¹Óã¬MDLËø£¬´æ´¢¹ý³ÌµÈ
2.3.1 sys schema
sys schemaÊÇMySQL 5.7.7ÖÐÒýÈëµÄÒ»¸öϵͳ¿â£¬°üº¬ÁËһϵÁÐÊÓͼ¡¢º¯ÊýºÍ´æ´¢¹ý³Ì£¬ ¸ÃÏîĿרעÓÚMySQLµÄÒ×ÓÃÐÔ¡£ÀýÈ磬ÎÒÃÇ¿ÉÒÔͨ¹ýsys
schema¿ìËÙµÄÖªµÀ£¬ÄÄЩÓï¾äʹÓÃÁËÁÙʱ±í£¬ÄĸöÓû§ÇëÇóÁË×î¶àµÄio£¬ÄĸöÏß³ÌÕ¼ÓÃÁË×î¶àµÄÄڴ棬ÄÄЩË÷ÒýÊÇÎÞÓÃË÷ÒýµÈ
sys schemaÖаüº¬ÁË´óÁ¿µÄÊÓͼ£¬ÄÇô£¬ÕâЩÊÓͼµÄÐÅÏ¢À´×ÔÄÄÀïÄØ£¿ÊÓͼÖеÄÐÅÏ¢¾ùÀ´×Ôperformance
schemaͳ¼ÆÐÅÏ¢¡£ ÕâÀï ÓÐÒ»¸öºÜºÃµÄ±ÈÓ÷£º
For Linux users I like to compare performance_schema
to /proc, and SYS to vmstat.
Ò²¾ÍÊÇ˵£¬performance schemaÌṩÁËÐÅÏ¢Ô´£¬µ«ÊÇ£¬Ã»ÓкܺõĽ«ÕâЩÐÅÏ¢×éÖ¯³ÉÓÐÓõÄÐÅÏ¢£¬´Ó¶øÃ»Óкܺõķ¢»ÓËüÃǵÄ×÷Ó᣶øsys
schemaʹÓÃperformance schemaÐÅÏ¢£¬Í¨¹ýÊÓͼµÄ·½Ê½¸ø³ö½â¾öʵ¼ÊÎÊÌâµÄ´ð°¸¡£
ÀýÈ磬ÏÂÃæÕâЩÎÊÌ⣬ÔÚMySQL 5.7֮ǰ£¬ÐèÒª½èÖúÍⲿ¹¤¾ß²ÅÄÜÖªµÀ£¬ÔÚMySQL 5.7ÖУ¬Ö±½Ó²éѯsys¿âÏÂÏàÓ¦µÄ±í¾ÍÄܵõ½´ð°¸£º
ÈçºÎ²é¿´Êý¾Ý¿âÖеÄÈßÓàË÷Òýselect * from sys.schema_redundant_indexes;
ÈçºÎ»ñȡδʹÓõÄË÷Òýselect * from schema_unused_indexes;
ÈçºÎ²é¿´Ê¹ÓÃÈ«±íɨÃèµÄSQLÓï¾äselect * from statements_with_full_table_scans
2.4 ¿ÉÓÃÐÔ
MySQL 5.7ÔÚ¿ÉÓÃÐÔ·½ÃæµÄ¸Ä½øÒ²´ø¸øÈ˲»ÉÙ¾ªÏ²¡£ÕâÀï½éÉÜÌØ±ðÓÐÓõļ¸Ïî¸Ä½ø£¬°üÀ¨£º
ÔÚÏßÉèÖà ¸´ÖƵĹýÂ˹æÔò ²»ÔÙÐèÒªÖØÆôMySQL£¬Ö»ÐèҪֹͣSQL thread£¬ÐÞ¸ÄÍê³ÉÒÔºó£¬Æô¶¯SQL
thread
ÔÚÏßÐÞ¸Äbuffer poolµÄ´óС
MySQL 5.7ΪÁËÖ§³Öonline buffer pool resize£¬ÒýÈëchunkµÄ¸ÅÄÿ¸öchunkĬÈÏÊÇ128M£¬µ±ÎÒÃÇÔÚÏßÐÞ¸Äbuffer
poolµÄʱºò£¬ÒÔchunkΪµ¥Î»½øÐÐÔö³¤»òÊÕËõ¡£Õâ¸ö²ÎÊýµÄÒýÈ룬¶Ôinnodb_buffer_pool_sizeµÄÅäÖÃÓÐÁËÒ»¶¨µÄÓ°Ïì¡£innodbÒªÇóbuffer
pool sizeÊÇinnodb_buffer_pool_chunk_size* innodb_buffer_pool_instancesµÄ±¶Êý£¬Èç¹û²»ÊÇ£¬½«»áÊʵ±µ÷´óinnodb_buffer_pool_size£¬ÒÔÂú×ãÒªÇó£¬Òò´Ë£¬¿ÉÄÜ»á³öÏÖbuffer
poolµÄʵ¼Ê·ÖÅä±ÈÅäÖÃÎļþÖÐÖ¸¶¨µÄsizeÒª´óµÄÇé¿ö
Online DDL MySQL 5.7Ö§³ÖÖØÃüÃûË÷ÒýºÍÐÞ¸ÄvarcharµÄ´óС£¬ÕâÁ½Ïî²Ù×÷ÔÚ֮ǰµÄ°æ±¾ÖУ¬¶¼ÐèÒªÖØ½¨Ë÷Òý»ò±í
ALTER TABLE t1 ALGORITHM=INPLACE, CHANGE COLUMN c1 c1
VARCHAR(255);
ÔÚÏß¿ªÆôGTID £¬ÔÚ֮ǰµÄ°æ±¾ÖУ¬ÓÉÓÚ²»Ö§³ÖÔÚÏß¿ªÆôGTID£¬Óû§Èç¹ûÏ£Íû½«µÍ°æ±¾µÄÊý¾Ý¿âÉý¼¶µ½Ö§³ÖGTIDµÄÊý¾Ý¿â°æ±¾£¬ÐèÒªÏȹرÕÊý¾Ý¿â£¬ÔÙÒÔGTIDģʽÆô¶¯£¬ËùÒÔµ¼ÖÂÉý¼¶ÆðÀ´ÌرðÂé·³¡£MySQL
5.7ÒÔºó£¬Õâ¸öÎÊÌâ²»¸´´æÔÚ
2.5 ÐÔÄÜ
ÐÔÄÜÒ»Ö±¶¼ÊÇÓû§×î¹ØÐĵÄÎÊÌ⣬ÔÚMySQLÿ´Îа汾ÖУ¬¶¼»áÓв»ÉÙÐÔÄÜÌáÉý¡£ÔÚMySQL 5.7ÖУ¬ÐÔÄÜÏà¹ØµÄ¸Ä½ø·Ç³£¶à£¬ÕâÀï½ö½éÉܲ¿·Ö¸Ä½ø£¬°üÀ¨ÁÙʱ±íÏà¹ØµÄÐÔÄܸĽø¡¢Ö»¶ÁÊÂÎñµÄÐÔÄÜÓÅ»¯¡¢Á¬½Ó½¨Á¢ËٶȵÄÓÅ»¯ºÍ¸´ÖÆÐÔÄܵĸĽø¡£
2.5.1 ÁÙʱ±íµÄÐÔÄܸĽø
MySQL 5.7 ΪÁËÌá¸ßÁÙʱ±íÏà¹ØµÄÐÔÄÜ£¬¶ÔÁÙʱ±íÏà¹ØµÄ²¿·Ö½øÐÐÁË´ó·ùÐ޸쬰üÀ¨ÒýÈëеÄÁÙʱ±í¿Õ¼ä£»¶ÔÓÚÁÙʱ±íµÄDDL£¬²»³Ö¾Ã»¯Ïà¹Ø±í¶¨Ò壻¶ÔÓÚÁÙʱ±íµÄDML£¬²»Ð´redo£¬¹Ø±Õchange
bufferµÈ¡£ËùÓÐÁÙʱ±íµÄ¸Ä¶¯£¬¶¼»ùÓÚÒÔÏÂÁ½¸öÊÂʵ £º
1.ÁÙʱ±íÖ»ÔÚµ±Ç°»á»°Öпɼû
2.ÁÙʱ±íµÄÉúÃüÖÜÆÚÊǵ±Ç°Á¬½Ó£¨MySQLå´»ú»òÖØÆô£¬Ôòµ±Ç°Á¬½Ó½áÊø£©
Ò²¾ÍÊÇ˵£¬¶ÔÓÚÁÙʱ±íµÄ²Ù×÷£¬²»ÐèÒªÆäËûÊý¾ÝÒ»ÑùÑϸñµØ½øÐÐÒ»ÖÂÐÔ±£Ö¤¡£Í¨¹ý²»³Ö¾Ã»¯ÔªÐÅÏ¢£¬±ÜÃâдredoµÈ·½Ê½£¬¼õÉÙÁÙʱ±í²Ù×÷µÄIO£¬ÒÔÌá¸ßÁÙʱ±í²Ù×÷µÄÐÔÄÜ¡£
2.5.2 Ö»¶ÁÊÂÎñÐÔÄܸĽø
ÖÚËùÖÜÖª£¬ÔÚ´«Í³µÄOLTPÓ¦ÓÃÖУ¬¶Á²Ù×÷Ô¶¶àÓÚд²Ù×÷£¬²¢ÇÒ£¬¶Á²Ù×÷²»»á¶ÔÊý¾Ý¿â½øÐÐÐ޸ģ¬Èç¹ûÊÇ·ÇËø¶¨¶Á£¬¶Á²Ù×÷Ò²²»ÐèÒª½øÐмÓËø¡£Òò´Ë£¬¶ÔÖ»¶ÁÊÂÎñ½øÐÐÓÅ»¯£¬ÊÇÒ»¸ö²»´íµÄÑ¡Ôñ¡£
ÔÚMySQL 5.6ÖУ¬ÒѾ¶ÔÖ»¶ÁÊÂÎñ½øÐÐÁËÐí¶àÓÅ»¯¡£ÀýÈ磬½«MySQLÄÚ²¿ÊµÏÖÖеÄÊÂÎñÁ´±í·ÖΪֻ¶ÁÊÂÎñÁ´±íºÍÆÕͨÊÂÎñÁ´±í£¬ÕâÑùÔÚ´´½¨ReadViewµÄʱºò£¬ÐèÒª±éÀúÊÂÎñÁ´±í³¤¶È¾Í»áСºÜ¶à¡£
ÔÚMySQL 5.7ÖУ¬Ê×ÏȼÙÉèÒ»¸öÊÂÎñÊÇÒ»¸öÖ»¶ÁÊÂÎñ£¬Ö»ÓÐÔÚ¸ÃÊÂÎñ·¢ÆðÁËÐ޸IJÙ×÷ʱ£¬²Å»á½«Æäת»»ÎªÒ»¸öÆÕͨÊÂÎñ¡£MySQL
5.7ͨ¹ý ±ÜÃâΪֻ¶ÁÊÂÎñ·ÖÅäÊÂÎñID £¬²»ÎªÖ»¶ÁÊÂÎñ·ÖÅ仨¹ö¶Î£¬¼õÉÙËø¾ºÕùµÈ¶àÖÖ·½Ê½£¬ÓÅ»¯ÁËÖ»¶ÁÊÂÎñµÄ¿ªÏú£¬Ìá¸ßÁËÊý¾Ý¿âµÄÕûÌåÐÔÄÜ¡£
2.5.3 ¼ÓËÙÁ¬½Ó´¦Àí
ÔÚMySQL 5.7֮ǰ£¬±äÁ¿µÄ³õʼ»¯²Ù×÷£¨THD¡¢VIO£©¶¼ÊÇÔÚÁ¬½Ó½ÓÊÕÏß³ÌÀïÃæÍê³ÉµÄ£¬ÏÖÔÚ½«ÕâЩ¹¤×÷Ï·¢¸ø¹¤×÷Ị̈߳¬ÒÔ¼õÉÙÁ¬½Ó½ÓÊÕÏ̵߳Ť×÷Á¿£¬Ìá¸ßÁ¬½ÓµÄ´¦ÀíËÙ¶È¡£Õâ¸öÓÅ»¯¶ÔÄÇЩƵ·±½¨Á¢¶ÌÁ¬½ÓµÄÓ¦Ó㬽«»á·Ç³£ÓÐÓá£
2.5.4 ¸´ÖÆÐÔÄܵĸĽø
MySQLµÄ¸´ÖÆÑÓ³ÙÊÇÒ»Ö±±»Ú¸²¡µÄÎÊÌâÖ®Ò»£¬ÐÀϲµÄÊÇ£¬MySQL 5.7°æ±¾ÒѾ֧³Ö¡±ÕæÕý¡±µÄ²¢Ðи´Öƹ¦ÄÜ¡£MySQL
5.7²¢Ðи´ÖƵÄ˼Ïë¼òµ¥Ò×¶®£¬¼ò¶øÑÔÖ®£¬¾ÍÊÇ¡±Ò»¸ö×éÌá½»µÄÊÂÎñ¶¼ÊÇ¿ÉÒÔ²¢Ðлطŵġ±£¬ÒòΪÕâЩÊÂÎñ¶¼ÒѽøÈëµ½ÊÂÎñµÄprepare½×¶Î£¬Ôò˵Ã÷ÊÂÎñÖ®¼äûÓÐÈκγåÍ»£¨·ñÔò¾Í²»¿ÉÄÜÌá½»£©¡£MySQL
5.7ÒԺ󣬸´ÖÆÑÓ³ÙÎÊÌâÓÀ²»´æÔÚ¡£
ÕâÀïÐèҪעÒâµÄÊÇ£¬ÎªÁ˼æÈÝMySQL 5.6»ùÓÚ¿âµÄ²¢Ðи´ÖÆ£¬5.7ÒýÈëÁËеıäÁ¿slave-parallel-type£¬¸Ã±äÁ¿¿ÉÒÔÅäÖóÉDATABASE£¨Ä¬ÈÏ£©»òLOGICAL_CLOCK¡£¿ÉÒÔ¿´µ½£¬MySQLµÄĬÈÏÅäÖÃÊǿ⼶±ðµÄ²¢Ðи´ÖÆ£¬ÎªÁ˳ä·Ö·¢»ÓMySQL
5.7µÄ²¢Ðи´ÖƵŦÄÜ£¬ÎÒÃÇÐèÒª½«slave-parallel-typeÅäÖóÉLOGICAL_CLOCK¡£
3. ×ܽá
1.´Ó±¾ÎÄÖпÉÒÔ¿´µ½£¬MySQL 5.7ȷʵ´øÀ´Á˺ܶ༤¶¯ÈËÐĵŦÄÜ£¬ÎÒÃÇÉõÖÁ²»ÐèÒª½øÐÐÈκÎÐ޸ģ¬Ö»ÐèÒª½«ÒµÎñÇ¨ÒÆµ½MySQL
5.7ÉÏ£¬¾ÍÄÜ´øÀ´²»ÉÙÐÔÄܵÄÌáÉý¡£
2.´Ó±¾ÎÄÖл¹¿ÉÒÔ¿´µ½£¬ËäÈ»MySQL 5.7ÔÚÒ×ÓÃÐÔÉÏÓÐÁ˺ܶàµÄ¸Ä½ø£¬µ«ÊÇ£¬Ò²Óв»ÉÙÐèҪעÒâµÄµØ·½£¬
ÀýÈ磺1£©ÔÚÉèÖÃinnodbµÄbuffer poolʱ£¬ÐèҪעÒâchunkµÄ´æÔÚ£¬ºÏÀíÉèÖÃbuffer
pool instance·ñÔò¿ÉÄܳöÏÖʵ¼Ê·ÖÅäµÄbuffer pool size±ÈÔ¤ÏëµÄ´óºÜ¶àµÄÇé¿ö£»2£©¶àÏ̸߳´ÖÆÐèҪעÒ⽫slave_parallel_typeÉèÖÃΪLOGICAL_CLOCK£¬·ñÔò£¬MySQLʹÓõÄÊǿ⼶±ðµÄ²¢Ðи´ÖÆ£¬¶ÔÓÚ´ó¶àÊýÓ¦Ó㬲¢Ã»ÓÐʲôЧ¹û¡£ÄÇô£¬
ÔõÑù²ÅÊÇʹÓÃMySQL 5.7µÄÕýÈ·×ËÊÆÄØ£¿ÍøÒ×·ä³²ÊÇÒ»¸ö²»´íµÄÑ¡Ôñ £¬ÍøÒ×·ä³²µÄRDS£¨Relational
Database Service£¬¼ò³ÆRDS£©ÏîÄ¿ÊÇÒ»ÖÖ¼´¿ª¼´Óá¢Îȶ¨¿É¿¿¡¢¿Éµ¯ÐÔÉìËõµÄÔÚÏßÊý¾Ý¿â·þÎñ¡£Ê¹ÓÃRDSÌṩµÄ·þÎñ£¬¾ÍÊÇʹÓÃÒѾµ÷ÓŹýµÄÊý¾Ý¿â£¬Óû§²»ÐèÒª¶ÔÊý¾Ý¿â²ÎÊý½øÐÐÈκÎÐ޸쬾ÍÄܹ»»ñµÃÒ»¸öÐÔÄܼ«ºÃµÄÊý¾Ý¿â·þÎñ¡£
ÒÔÉϾÍÊDZ¾ÎĵÄÈ«²¿ÄÚÈÝ£¬Ï£Íû¶Ô´ó¼ÒµÄѧϰÓÐËù°ïÖú£¬Ò²Ï£Íû´ó¼Ò¶à¶àÖ§³Ö½Å±¾Ö®¼Ò¡£
|