mysql 5.7 & 最新開発状況 @ オープンソースカンファレンス20

60
Copyright © 201, Oracle and/or its affiliates. All rights reserved. | MYSQL 5.7 & 最新情報 Ryusuke Kajiyama / 梶山隆輔 / @RKajiyama MySQL Sales ConsulIng Senior Manager, Asia Pacific & Japan The State of the Dolphin

Upload: ryusuke-kajiyama

Post on 07-Aug-2015

55 views

Category:

Documents


7 download

TRANSCRIPT

  1. 1. Copyright201,Oracleand/oritsaliates.Allrightsreserved.| MYSQL5.7& RyusukeKajiyama//@RKajiyama MySQLSalesConsulIngSeniorManager,AsiaPacic&Japan TheStateoftheDolphin
  2. 2. Copyright201Oracleand/oritsaliates.Allrightsreserved.| SAFEHARBORSTATEMENT 2
  3. 3. Copyright201Oracleand/oritsaliates.Allrightsreserved.| Theworld'smostpopularopensourcedatabase 3
  4. 4. Copyright201Oracleand/oritsaliates.Allrightsreserved.| 4 2015 105 AYearofAnniversaries!
  5. 5. Copyright201Oracleand/oritsaliates.Allrightsreserved.| 5 20MySQL20 15MySQL15 10Innobase10 55 AYearofAnniversaries!
  6. 6. Copyright201Oracleand/oritsaliates.Allrightsreserved.| KeyannouncementsinJan-Apr2015 MySQLCluster7.4GA 200MillionNoSQLReads/ Sec 2.5MSQLOps/Sec 50%FasterReads 40%FasterMixed 5XFasterMaintenance Ops MySQLEnterprise Firewall RealTimeProtecIon BlocksSQLInjecIon Abacks BlockSuspiciousTrac LearnsWhiteList Transparent MySQL5.7RC 2XFasterthanMySQL5.6 NewOpImizerCost Model ReplicaIon Improvements InnoDBFTSCJKSupport 6
  7. 7. Copyright201Oracleand/oritsaliates.Allrightsreserved.| 7
  8. 8. Copyright201Oracleand/oritsaliates.Allrightsreserved.| MySQL & Oracle,RedHat,CentOS Fedora Ubuntu,Debian SUSE DevOps MySQLDatabase MySQLWorkbench MySQLConnector/ODBC MySQLConnector/Python MySQLConnector/NET MySQLUIliIes 8 MySQL:Yum,APT,NuGET
  9. 9. Copyright201Oracleand/oritsaliates.Allrightsreserved.| GitHubMySQL MySQLGit GitHubforMySQLCommunity hbps://github.com/mysql :hbp://mysqlrelease.com 9
  10. 10. Copyright201Oracleand/oritsaliates.Allrightsreserved.| MySQL5.6 hCp://dev.mysql.com/doc/refman/5.6/ja/index.html 10
  11. 11. Copyright201Oracleand/oritsaliates.Allrightsreserved.| MySQLEnterpriseEdiIon 11
  12. 12. Copyright201Oracleand/oritsaliates.Allrightsreserved.| MySQLEnterpriseBackup / & MySQLEnterpriseSecurity (PAM, Windows,LDAP,etc.) MySQLEnterpriseMonitor MySQLEnterpriseEncrypPon AES256 / MySQLEnterpriseAudit SQL XML MySQLEnterpriseEdiIon 12
  13. 13. Copyright201Oracleand/oritsaliates.Allrightsreserved.| MySQLEnterpriseFirewall SQLInjecIonProtecIonwithPosiIveSecurityModel OutofpolicydatabasetransacIonsdetectedandblocked Logging&Analysis Select *.* from employee where id=22! Select *.* from employee where id=22 or 1=1! Block&Log Allow&Log WhiteListApplicaPons 13
  14. 14. Copyright201Oracleand/oritsaliates.Allrightsreserved.| MySQLEnterpriseFirewallDetails FirewalloperaIonisturnedonataperuserlevel PerUserStatesare RECORDING PROTECTING OFF 14
  15. 15. Copyright201Oracleand/oritsaliates.Allrightsreserved.| WhathappenswhenSQLisblocked? TheclientapplicaIongetsanERROR mysql> SELECT first_name, last_name FROM customer WHERE customer_id = 1 OR TRUE; ERROR 1045 (28000): Statement was blocked by Firewall mysql> SHOW DATABASES; ERROR 1045 (28000): Statement was blocked by Firewall mysql> TRUNCATE TABLE mysql.user; ERROR 1045 (28000): Statement was blocked by Firewall ReportedtotheErrorLog IncrementCounter 15
  16. 16. Copyright201Oracleand/oritsaliates.Allrightsreserved.| MySQL Enterprise Edition & Cluster CGE 30 Oracle Software Delivery Cloud http://edelivery.oracle.com/ MySQL Database hbp://dev.mysql.com/doc/index- enterprise.html
  17. 17. Copyright201Oracleand/oritsaliates.Allrightsreserved.| MySQLCluster7.4GA 17
  18. 18. Copyright201Oracleand/oritsaliates.Allrightsreserved.| MySQLCluster:SQLandNoSQLHybridAPIs MySQLClusterDataNodes AppsAppsAppsAppsAppsAppsAppsAppsAppsAppsApps JPA ClusterJPA PHPPerlPythonRubyJDBCClusterJJSMemcached MySQLJNINode.JSndb_eng NDBAPI(C++) 18
  19. 19. Copyright201Oracleand/oritsaliates.Allrightsreserved.| MySQLCluster7.4GA 200MillionNoSQL Reads/Sec 2.5MSQLOps/Sec 50%FasterReads 40%FasterMixed Performance AcIve-AcIve Geographic Redundancy ConictDetecIon/ ResoluIon AcIve-AcIve 5XFaster MaintenanceOps DetailedReporIng Management 19
  20. 20. Copyright201,Oracleand/oritsaliates.Allrightsreserved.| MySQL
  21. 21. Copyright201Oracleand/oritsaliates.Allrightsreserved.| 21 4.0 /GIS(MyISAM) UPDATE/DELETE OracleMySQL Sun 3.23 MyISAM InnoDB 5.1 5.6 memcachedAPI UNDO GlobalTransacIonID ALTERTABLE 5.5 InnoDB PERFORMANCE_SCHEMA 1.0-3.22 (ISAM,HEAP) Windows/64bit (SJIS/UJIS) 5.0 // XA INFORMATION_SCHEMA 4.1 Unicode CSV,ARCHIVE ndbcluster 19952000200520102015 5.7+ CJK/GIS(InnoDB) NoSQL
  22. 22. Copyright201Oracleand/oritsaliates.Allrightsreserved.| SSD UNDO JSONEXPLAIN MemcachedAPI GlobalTransacIonID Binlog 22 ALTERTABLE SHA256 MySQL5.6
  23. 23. Copyright201Oracleand/oritsaliates.Allrightsreserved.| MySQL5.7RC 23
  24. 24. Copyright201Oracleand/oritsaliates.Allrightsreserved.| MySQL5.7ReleaseCandidateAvailable! 24 InnoDB: Online&Bulkload (mulI-source,mulI-threadedslaves) : greaterusercontrol&beberqueryperformance PerformanceSchema MySQLSYSSchema & MySQL5.62 : ,& NEW!JSONSupport(nowinlabs) RC Andmanymorenewfeaturesandenhancements...hbp://mysqlserverteam.com/the-mysql-5-7-7-release-candidate-is-available/
  25. 25. Copyright201Oracleand/oritsaliates.Allrightsreserved.| 0 100,000 200,000 300,000 400,000 500,000 600,000 700,000 8 16 32 64 128 256 512 1,024 QueriesperSecond ConnecPons MySQL5.7:SysbenchReadOnly(PointSelect) MySQL5.7 MySQL5.6 MySQL5.5 MySQL5.7:SysbenchBenchmark Intel(R)Xeon(R)CPUE7-4860x86_64 4socketsx10cores-HT(80CPUthreads) 2.3GHz,512GBRAM OracleLinux6.5 2xFasterthanMySQL5.6 3xFasterthanMySQL5.5 645,000QPS 25
  26. 26. Copyright201Oracleand/oritsaliates.Allrightsreserved.| MySQL5.7: SQL I/O EXPLAINJSON 26 labs.mysql.com
  27. 27. Copyright201Oracleand/oritsaliates.Allrightsreserved.| MySQL5.7:OpImizer-JSONEXPLAIN JSONEXPLAIN MySQLWorkbenchVisualExplain { "query_block": { "select_id": 1, "cost_info": { "query_cost": "200.40" }, "table": { "table_name": "nicer_but_slower_film_list", "access_type": "ALL", "rows_examined_per_scan": 992, "rows_produced_per_join": 992, "filtered": 100, "cost_info": { "read_cost": "2.00", "eval_cost": "198.40", "prefix_cost": "200.40", "data_read_per_join": "852K" }, "used_columns": [ "FID", "title", "description", "category", "price", "length", "rating", "actors" ], ...
  28. 28. Copyright201Oracleand/oritsaliates.Allrightsreserved.| InnoDB-GeneralTablespaceSupport 28 Ageneraltablespaceisasharedtablespace,similartothesystemtablespace.ItcanholdmulIpletables,andsupportsall tablerowformats.GeneraltablespacescanalsobecreatedinalocaIonrelaIvetoorindependentofthedatadirectory. [USER01]>CREATETABLESPACEU_TABLESPACE01ADDDATAFILE'/home/mysql/user_tablespace01.ibd'Engine=InnoDB; QueryOK,0rowsaected(0.01sec) [USER01]>CREATETABLESPACEU_TABLESPACE02_8KADDDATAFILE'/home/mysql/user_tablespace02_8k.ibd'FILE_BLOCK_SIZE=8192Engine=InnoDB; QueryOK,0rowsaected(0.01sec) [USER01]>CREATETABLE`T_USER01`( >`id`int(11)NOTNULLAUTO_INCREMENT,`text`varchar(100)DEFAULTNULL,PRIMARYKEY(`id`) >)TABLESPACE=U_TABLESPACE01ENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=u8mb4; QueryOK,0rowsaected(0.01sec) [USER01]>CREATETABLE`T_USER02_8K`( >`id`int(11)NOTNULLAUTO_INCREMENT,`text`varchar(100)DEFAULTNULL,PRIMARYKEY(`id`) >)TABLESPACE=U_TABLESPACE02_8KENGINE=InnoDBAUTO_INCREMENT=1DEFAULTCHARSET=u8mb4 >ROW_FORMAT=COMPRESSEDKEY_BLOCK_SIZE=8; QueryOK,0rowsaected(0.00sec) 13.1.15CREATETABLESPACESyntax
  29. 29. Copyright201Oracleand/oritsaliates.Allrightsreserved.| InnoDB-TemporaryTables CREATE/DROP DDL,I/O DML NoREDOlogging,nochangebuering,lesslocking ACID/MVCC 29 14.11InnoDBStartupOpPonsandSystemVariables
  30. 30. Copyright201Oracleand/oritsaliates.Allrightsreserved.| () JOIN OR 30
  31. 31. Copyright201Oracleand/oritsaliates.Allrightsreserved.| InnoDB-FullTextSearch(FTS) N-gram mecab 31 CREATE TABLE `N_DEMO`( `FTS_N_ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(100) DEFAULT NULL, PRIMARY KEY (`FTS_N_ID`), FULLTEXT KEY `ngram_idx` (`title`) /*!50100 WITH PARSER `ngram` */ ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4; CREATE TABLE `M_DEMO` ( `FTS_M_ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(100) DEFAULT NULL, PRIMARY KEY (`FTS_M_ID`), FULLTEXT KEY `mecab_idx` (`title`) /*!50100 WITH PARSER `mecab` */ ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
  32. 32. Copyright201Oracleand/oritsaliates.Allrightsreserved.| MySQL5.7RC PerformanceSchema: SYSLOGLinux/Windows GISInnoDBBoost.Geometry Security, 32 ReplicaPonforbeberscalabilityandavailability Fabricforhighavailabilityandsharding
  33. 33. Copyright201Oracleand/oritsaliates.Allrightsreserved.| MySQLSYSSchema DB DB - - -IOSQL - SYS: - OracleV$() - MicrosoSQLServerDMV(DynamicManagementViews) 33
  34. 34. Copyright201Oracleand/oritsaliates.Allrightsreserved.| 34 ResizetheInnoDBBuerPoolonline SeparateUNDOtablespace UNDO(MySQL5.7.5) UNDO DynamicconguraPon MakingexisIngsengsdynamicallycongurable Asadesignprinciplefornewfeatures&sengs 14.4.8TruncaIngUndoLogsThatResideinUndoTablespaces
  35. 35. Copyright201Oracleand/oritsaliates.Allrightsreserved.| OGC(OpenGeospaIalConsorIum) Boost.Geometry Boost.Geometry MySQL5.7:GIS-Boost.Geometry 35 ALTERTABLE addSPATIALindex();
  36. 36. Copyright201Oracleand/oritsaliates.Allrightsreserved.| MySQL5.7.7 mysql_install_db mysqld--iniIalize--iniIalize-insecure CREATEUSERALTERUSER SSL,PASSWORDEXPIRE,ACCOUNT[LOCK|UNLOCK] mysql.userPasswordauthenIcaIon_string SETPASSWORDPASSWORD() ALTERUSER ENCRYPT,DES_ENCRYPT,DES_DECRYPTAES mysqld--iniIalize--user=mysql mysql_install_db--user=mysql 36
  37. 37. Copyright201Oracleand/oritsaliates.Allrightsreserved.| Security-EncrypPon,Passwords,InstallaPon AES256EncrypIon(DefaultinMySQL5.7) Deployment: / ,(test), 37 [GlobalConguraPon] SETGLOBALdefault_password_lifeIme=180; [Individualuseraccounts] ALTERUSERjoro@localhostPASSWORDEXPIREINTERVAL90DAY; ALTERUSERjoro@localhostPASSWORDEXPIREDEFAULT; ALTERUSERjoro@localhostPASSWORDEXPIRENEVER;
  38. 38. Copyright201Oracleand/oritsaliates.Allrightsreserved.| MySQL5.7 MulI-SourceReplicaIon PerformanceenhancementofMulI-ThreadSlave gId_modeisnowdynamic MakingMySQLSlaveReplicaIonFiltersDynamic PreparingimplementaIonofGroupReplicaIon[Labs] 38
  39. 39. Copyright201Oracleand/oritsaliates.Allrightsreserved.| 1 & MySQL5.7:MulI-SourceReplicaIon Binlog Master1 Binlog Master2 Binlog MasterN IO1 Relay1 Coordinator W1 W2 WX IO2 Relay2 Coordinator W1 W2 WX Coordinator W1 W2 WX ION RelayN Coordinator W1 W2 WX Slave 39
  40. 40. Copyright201Oracleand/oritsaliates.Allrightsreserved.| 5 GTID& SysbenchOLTPtest 1,000 SSD/48coreHT/512GBRAM MySQL5.7: 0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 0 4 16 25 50 100 200 WorkerThreads SlaveTransacPonsperSecond Baseline 50clients 100clients 150clients 200clients 40 --slave-parallel-type 1.DATABASE:(Default)UsethedbparIIonedMTS(1workerperdatabase) 2.LOGICAL_CLOCK:UselogicalclockbasedparallelizaIonmode.
  41. 41. Copyright201Oracleand/oritsaliates.Allrightsreserved.| 41 GTID(gId_mode) EnablingGlobalTransacPonIdenPersWithoutDownPmeinMySQL5.7.6 1.DisableallwriteoperaIons. 2.WaitforalltransacIonstopropagate fromthemaster(s)toallslaves. 3.Stopallservers. 4.Oneachserver,setgId-mode=ONintheconguraIon le. 5.Startallservers. 6.EnablewriteoperaIons. ItissIllpossibletousetheold,oineprocedure. Theprocedureisasfollows: OineprocedureOnlineprocedure :17.1.5.2EnablingGTIDTransacIonsOnline 17.1.5.4VerifyingReplicaIonofAnonymousTransacIons 1 SET@@GLOBAL.ENFORCE_GTID_CONSISTENCY=WARN; 2SET@@GLOBAL.ENFORCE_GTID_CONSISTENCY=ON; 3SET@@GLOBAL.GTID_MODE=OFF_PERMISSIVE; 4SET@@GLOBAL.GTID_MODE=ON_PERMISSIVE; 5SHOWSTATUSLIKE'ONGOING_ANONYMOUS_TRANSACTION_COUNT'; 6SET@@GLOBAL.GTID_MODE=ON; 7Oneachserver,addgId-mode=ONtomy.cnf. 8 STOPSLAVE; CHANGEMASTERTOMASTER_AUTO_POSITION=1; STARTSLAVE; MySQLReplicaIonGTIDGTID GTID MySQL5.7.6MySQLMySQL 5.6.x Standard ReplicaIon 5.7.6 Standard ReplicaIon 5.7.6 GTIDMode ReplicaIon
  42. 42. Copyright201Oracleand/oritsaliates.Allrightsreserved.| MySQLFabric1.5:& OpenStack ; Fabric:Python,Java, PHP,.NET,C(labs) MySQLFabric Connector ApplicaIon Read-slaves mappings SQL HAgroup Read-slaves HAgroup Connector ApplicaIon 42 GA
  43. 43. Copyright201Oracleand/oritsaliates.Allrightsreserved.| 43 MySQLSlaveReplicaIonFiltersDynamic REPLICATE_DO_DB REPLICATE_IGNORE_DB REPLICATE_DO_TABLE REPLICATE_IGNORE_TABLE REPLICATE_WILD_DO_TABLE REPLICATE_WILD_IGNORE_TABLE REPLICATE_REWRITE_DB MySQL-5.7.3 CHANGEREPLICATIONFILTER *slave* MySQL-5.7.3OpIon(my.cnf) MySQL ThefollowingslavereplicaIonlterscanbe changeddynamicallyusingthiscommand. mysql>STOPSLAVESQL_THREAD; QueryOK,0rowsaected(0.05sec) mysql>CHANGEREPLICATIONFILTER REPLICATE_DO_DB=(db1); QueryOK,0rowsaected(0.00sec) ) MySQL-5.7.3-MakingMySQLSlaveReplicaPonFiltersDynamic
  44. 44. Copyright201Oracleand/oritsaliates.Allrightsreserved.| MySQLLabs 44
  45. 45. Copyright201Oracleand/oritsaliates.Allrightsreserved.| MySQLLabs MySQLMySQLCluster MySQL5.6memcachedAPI MySQLCluster7.2memcachedAPI MySQL5.6PerformanceSchema MySQL5.6Intra-schemaMulIThreadSlave MySQL5.6OnlineAlterTable MySQL5.7MulISourceReplicaIon MySQL5.7NewOpImizerCostModel
  46. 46. Copyright201Oracleand/oritsaliates.Allrightsreserved.| ( OpImisIcStateMachine / InnoDB GTID PERFORMANCE_SCHEMA MySQL5.7: ApplicaIon MySQLMasters ReplicaIon Plugin API MySQL Server GroupComms (Corosync) 46 labs.mysql.com
  47. 47. Copyright201Oracleand/oritsaliates.Allrightsreserved.| EarlyAccessFeature(EAF):DataDicIonary ReplacingtheFRMs Asinglerepositoryfordatabaseobjectmetadata InnoDBtablesreplace.frm,.trg,.trn,.parles Atomic&crash-safeoperaIonstoday TransacIonalinthefuture Makesaddingnewfeaturesmucheasier Eliminatescomplexity,resolvesbugs Improvesperformance LeveragesInnoDBstrengths 47
  48. 48. Copyright201Oracleand/oritsaliates.Allrightsreserved.| HTTPPluginforMySQL TheSQLendpointandJSON $ curl --user basic_auth_user:basic_auth_passwd --url "http://127.0.0.1:8080/sql/myhttp/SELECT+name_first,+name_last+FROM +names" [ { "meta":[ {"type": 253,"catalog":"def","database":"myhttp","table":"names","org_table":"names","colu mn":"name_first","org_column":"name_first","charset":33,"length":120,"flags": 0,"decimals":0}, {"type": 253,"catalog":"def","database":"myhttp","table":"names","org_table":"names","colu mn":"name_last","org_column":"name_last","charset":33,"length":120,"flags": 0,"decimals":0} ], "data":[ ["Scott","Tiger"], ["Bruce","Wayne"], ], "status":[{"server_status":34,"warning_count":0}] } ] 48
  49. 49. Copyright201Oracleand/oritsaliates.Allrightsreserved.| HTTPPluginforMySQL MySQLHTTP(S) UTF8JSON 3 SQL CRUD-Key-Value JSON-Document Formoredetails; hbp://www.slideshare.net/nixnutz/hbp-plugin-for-mysql-39598656 49
  50. 50. Copyright201Oracleand/oritsaliates.Allrightsreserved.| HTTPPluginforMySQL SQLCRUDJSON URLhbp[s]://server:port/sql/hbp[s]://server:port/crud/hbp[s]://server:port/doc/ SQLCRUDCRUD JSON* SQLYesNoNo HTTPGETGET,PUT.DELETEGET,PUT.DELETE YesNoYes YesYesYes UTF-8UTF-8UTF-8 YesYesYes
  51. 51. Copyright201Oracleand/oritsaliates.Allrightsreserved.| MySQLBinlogEvents BinlogAPI C++ 2"transport" TCPTransport&FileTransport API hbp://mysqlhighavailability.com/author/nehakumari/ 51
  52. 52. Copyright201Oracleand/oritsaliates.Allrightsreserved.| MySQL5.7:JSON JSON JSON SQL GeneratedColumns() InnoDBSTOREDVIRTUALGeneratedColumns hbp://mysqlserverteam.com/json-labs-release-overview/
  53. 53. Copyright201Oracleand/oritsaliates.Allrightsreserved.| MySQL5.7:JSON 53 mysql> CREATE TABLE employees (data JSON); Query OK, 0 rows affected (0,01 sec) mysql> INSERT INTO employees VALUES ('{"id": 1, "name": "Jane"}'); Query OK, 1 row affected (0,00 sec) mysql> INSERT INTO employees VALUES ('{"id": 2, "name": "Joe"}'); Query OK, 1 row affected (0,00 sec) mysql> select * from employees; +---------------------------+ | data | +---------------------------+ | {"id": 1, "name": "Jane"} | | {"id": 2, "name": "Joe"} | +---------------------------+ 2 rows in set (0,00 sec)
  54. 54. Copyright201Oracleand/oritsaliates.Allrightsreserved.| MySQL5.7:JSON DocumentValidaIon oninsertonly EcientAccess mysql> INSERT INTO employees VALUES ('some random text'); ERROR 3130 (22032): Invalid JSON text: "Expect a value here." at position 0 in value (or column) 'some random text'. mysql> select jsn_extract(data, '$.name') from employees; +-----------------------------+ | jsn_extract(data, '$.name') | +-----------------------------+ | "Jane" | | "Joe" | +-----------------------------+ 2 rows in set (0,00 sec)
  55. 55. Copyright201Oracleand/oritsaliates.Allrightsreserved.| jsn_array() BuildaJSONarrayfromlistofexpressions jsn_object() BuildsJSONobjectsfromavariablelengthlist ofkey/valuepairs jsn_insert() Adds'missing'datatoJSONdocuments jsn_remove() RemovesabributesfromexisIngJSON documents jsn_set() SetsabributeswithinJSONdocuments jsn_replace() Replaces(butdoesn'tadd)abributeswithin JSONdocuments jsn_append() Addsavaluetotheendofanarray jsn_merge() Mergestwoarrays jsn_extract() ReturnsavaluenestedinsideofaJSON document 55 JSONFuncIonsforCreaIng&ManipulaIng JSONDocuments
  56. 56. Copyright201Oracleand/oritsaliates.Allrightsreserved.| jsn_search() SearchforvalueswithinJSONdocumentsand returntheirlocaIons jsn_contains() Checksforaspecicelementandvalue jsn_contains_path() Determineifaspecicelementispresentina documentinaspecicposiIon jsn_valid() CheckifdocumentisavalidJSONdocument jsn_type() Findthetypeofavaluewithinadocument jsn_keys() ReturnsarraysofthekeynamesfortheJSON documents jsn_length() NumberofelementsinJSONdocument jsn_depth() LevelofnesInginJSONdocument jsn_unquote() HelpsmovefromJSONtootherMySQLtypes jsn_quote() HelpsmovefromotherMySQLtypestoJSON 56 QueryandSearchJSONFuncIons
  57. 57. Copyright201Oracleand/oritsaliates.Allrightsreserved.| GeneratedColumns VirtualGeneratedColumn Generatedontheywhenthecolumnisread Canbeindexed StoredGeneratedColumn Generatedwhenthereferencedcolumniswribento Canbeindexed mysql> ALTER TABLE employees ADD name VARCHAR(100) GENERATED ALWAYS AS(jsn_extract(info, '$.name')) STORED; mysql> ALTER TABLE employees ADD INDEX(name); hbp://mysqlserverteam.com/ 57 DiggingintoyourDocuments labs.mysql.com
  58. 58. Copyright201Oracleand/oritsaliates.Allrightsreserved.| JOIN / 58 ?
  59. 59. Copyright201Oracleand/oritsaliates.Allrightsreserved.| 5.6 MySQLServerGA InnoDB& &NoSQL MySQLCluster-GA 2NoSQL200SQL 7.4 5.7 MySQLServerRC & JSONGroupReplicaPon 59
  60. 60. Copyright201Oracleand/oritsaliates.Allrightsreserved.| Theworld'smostpopularopensourcedatabase 60