1. Copyright201,Oracleand/oritsaliates.Allrightsreserved.|
MYSQL5.7& RyusukeKajiyama//@RKajiyama
MySQLSalesConsulIngSeniorManager,AsiaPacic&Japan
TheStateoftheDolphin
2. Copyright201Oracleand/oritsaliates.Allrightsreserved.|
SAFEHARBORSTATEMENT 2
3. Copyright201Oracleand/oritsaliates.Allrightsreserved.|
Theworld'smostpopularopensourcedatabase 3
4. Copyright201Oracleand/oritsaliates.Allrightsreserved.| 4
2015 105 AYearofAnniversaries!
5. Copyright201Oracleand/oritsaliates.Allrightsreserved.| 5
20MySQL20 15MySQL15 10Innobase10 55 AYearofAnniversaries!
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. Copyright201Oracleand/oritsaliates.Allrightsreserved.|
7
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. Copyright201Oracleand/oritsaliates.Allrightsreserved.|
GitHubMySQL MySQLGit GitHubforMySQLCommunity
hbps://github.com/mysql :hbp://mysqlrelease.com 9
10. Copyright201Oracleand/oritsaliates.Allrightsreserved.|
MySQL5.6 hCp://dev.mysql.com/doc/refman/5.6/ja/index.html 10
11. Copyright201Oracleand/oritsaliates.Allrightsreserved.|
MySQLEnterpriseEdiIon 11
12. Copyright201Oracleand/oritsaliates.Allrightsreserved.|
MySQLEnterpriseBackup / & MySQLEnterpriseSecurity (PAM,
Windows,LDAP,etc.) MySQLEnterpriseMonitor MySQLEnterpriseEncrypPon
AES256 / MySQLEnterpriseAudit SQL XML MySQLEnterpriseEdiIon 12
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. Copyright201Oracleand/oritsaliates.Allrightsreserved.|
MySQLEnterpriseFirewallDetails
FirewalloperaIonisturnedonataperuserlevel PerUserStatesare
RECORDING PROTECTING OFF 14
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. 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. Copyright201Oracleand/oritsaliates.Allrightsreserved.|
MySQLCluster7.4GA 17
18. Copyright201Oracleand/oritsaliates.Allrightsreserved.|
MySQLCluster:SQLandNoSQLHybridAPIs MySQLClusterDataNodes
AppsAppsAppsAppsAppsAppsAppsAppsAppsAppsApps JPA ClusterJPA
PHPPerlPythonRubyJDBCClusterJJSMemcached MySQLJNINode.JSndb_eng
NDBAPI(C++) 18
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. Copyright201,Oracleand/oritsaliates.Allrightsreserved.|
MySQL
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. Copyright201Oracleand/oritsaliates.Allrightsreserved.| SSD
UNDO JSONEXPLAIN MemcachedAPI GlobalTransacIonID Binlog 22
ALTERTABLE SHA256 MySQL5.6
23. Copyright201Oracleand/oritsaliates.Allrightsreserved.|
MySQL5.7RC 23
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. 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. Copyright201Oracleand/oritsaliates.Allrightsreserved.|
MySQL5.7: SQL I/O EXPLAINJSON 26 labs.mysql.com
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. 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. Copyright201Oracleand/oritsaliates.Allrightsreserved.|
InnoDB-TemporaryTables CREATE/DROP DDL,I/O DML
NoREDOlogging,nochangebuering,lesslocking ACID/MVCC 29
14.11InnoDBStartupOpPonsandSystemVariables
30. Copyright201Oracleand/oritsaliates.Allrightsreserved.| ()
JOIN OR 30
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. Copyright201Oracleand/oritsaliates.Allrightsreserved.|
MySQL5.7RC PerformanceSchema: SYSLOGLinux/Windows
GISInnoDBBoost.Geometry Security, 32
ReplicaPonforbeberscalabilityandavailability
Fabricforhighavailabilityandsharding
33. Copyright201Oracleand/oritsaliates.Allrightsreserved.|
MySQLSYSSchema DB DB - - -IOSQL - SYS: - OracleV$() -
MicrosoSQLServerDMV(DynamicManagementViews) 33
34. Copyright201Oracleand/oritsaliates.Allrightsreserved.| 34
ResizetheInnoDBBuerPoolonline SeparateUNDOtablespace
UNDO(MySQL5.7.5) UNDO DynamicconguraPon
MakingexisIngsengsdynamicallycongurable
Asadesignprinciplefornewfeatures&sengs
14.4.8TruncaIngUndoLogsThatResideinUndoTablespaces
35. Copyright201Oracleand/oritsaliates.Allrightsreserved.|
OGC(OpenGeospaIalConsorIum) Boost.Geometry Boost.Geometry
MySQL5.7:GIS-Boost.Geometry 35 ALTERTABLE addSPATIALindex();
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. 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. Copyright201Oracleand/oritsaliates.Allrightsreserved.|
MySQL5.7 MulI-SourceReplicaIon
PerformanceenhancementofMulI-ThreadSlave gId_modeisnowdynamic
MakingMySQLSlaveReplicaIonFiltersDynamic
PreparingimplementaIonofGroupReplicaIon[Labs] 38
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. 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. 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. 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. 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. Copyright201Oracleand/oritsaliates.Allrightsreserved.|
MySQLLabs 44
45. Copyright201Oracleand/oritsaliates.Allrightsreserved.|
MySQLLabs MySQLMySQLCluster MySQL5.6memcachedAPI
MySQLCluster7.2memcachedAPI MySQL5.6PerformanceSchema
MySQL5.6Intra-schemaMulIThreadSlave MySQL5.6OnlineAlterTable
MySQL5.7MulISourceReplicaIon MySQL5.7NewOpImizerCostModel
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. Copyright201Oracleand/oritsaliates.Allrightsreserved.|
EarlyAccessFeature(EAF):DataDicIonary ReplacingtheFRMs
Asinglerepositoryfordatabaseobjectmetadata
InnoDBtablesreplace.frm,.trg,.trn,.parles
Atomic&crash-safeoperaIonstoday TransacIonalinthefuture
Makesaddingnewfeaturesmucheasier Eliminatescomplexity,resolvesbugs
Improvesperformance LeveragesInnoDBstrengths 47
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. 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. 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. Copyright201Oracleand/oritsaliates.Allrightsreserved.|
MySQLBinlogEvents BinlogAPI C++ 2"transport"
TCPTransport&FileTransport API
hbp://mysqlhighavailability.com/author/nehakumari/ 51
52. Copyright201Oracleand/oritsaliates.Allrightsreserved.|
MySQL5.7:JSON JSON JSON SQL GeneratedColumns()
InnoDBSTOREDVIRTUALGeneratedColumns
hbp://mysqlserverteam.com/json-labs-release-overview/
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. 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. 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. 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. 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. Copyright201Oracleand/oritsaliates.Allrightsreserved.| JOIN
/ 58 ?
59. Copyright201Oracleand/oritsaliates.Allrightsreserved.| 5.6
MySQLServerGA InnoDB& &NoSQL MySQLCluster-GA 2NoSQL200SQL
7.4 5.7 MySQLServerRC & JSONGroupReplicaPon 59
60. Copyright201Oracleand/oritsaliates.Allrightsreserved.|
Theworld'smostpopularopensourcedatabase 60
LOAD MORE