About the Author |
|
xiii | |
About the Technical Reviewer |
|
xv | |
Acknowledgments |
|
xvii | |
Introduction |
|
xix | |
|
Chapter 1 Introducing MySQL 8---A New Beginning |
|
|
1 | (36) |
|
|
3 | (13) |
|
|
4 | (4) |
|
|
8 | (4) |
|
X Plugin, X Protocol, and X DevAPI |
|
|
12 | (2) |
|
|
14 | (2) |
|
|
16 | (3) |
|
|
17 | (1) |
|
|
18 | (1) |
|
Removed Options, Variables, and Features |
|
|
19 | (1) |
|
Paradigm Shifting Features |
|
|
20 | (14) |
|
|
21 | (4) |
|
|
25 | (9) |
|
|
34 | (3) |
|
Chapter 2 Getting Started with MySQL |
|
|
37 | (36) |
|
|
37 | (17) |
|
How Do I Connect to MySQL? |
|
|
39 | (3) |
|
How to Get and Install MySQL |
|
|
42 | (6) |
|
Configuring and Managing Access to MySQL |
|
|
48 | (6) |
|
|
54 | (16) |
|
Creating Databases and Tables |
|
|
54 | (3) |
|
|
57 | (4) |
|
|
61 | (1) |
|
|
62 | (1) |
|
|
63 | (1) |
|
|
64 | (1) |
|
|
65 | (1) |
|
|
65 | (1) |
|
|
66 | (3) |
|
|
69 | (1) |
|
|
70 | (3) |
|
|
73 | (62) |
|
Concepts and Technologies: Jargon Explained |
|
|
74 | (5) |
|
Origins: Key, Value Mechanisms |
|
|
74 | (2) |
|
|
76 | (1) |
|
Application Programming Interface |
|
|
76 | (1) |
|
|
77 | (1) |
|
|
78 | (1) |
|
Introducing JSON Documents |
|
|
79 | (46) |
|
|
79 | (2) |
|
|
81 | (5) |
|
|
86 | (8) |
|
|
94 | (31) |
|
Combining SQL and JSON - Indexing JSON Data |
|
|
125 | (8) |
|
|
133 | (2) |
|
Chapter 4 The MySQL Shell |
|
|
135 | (40) |
|
|
136 | (14) |
|
|
137 | (2) |
|
|
139 | (2) |
|
|
141 | (3) |
|
|
144 | (2) |
|
|
146 | (4) |
|
|
150 | (8) |
|
|
151 | (4) |
|
|
155 | (3) |
|
Tutorial: MySQL Shell by Example |
|
|
158 | (16) |
|
Installing the Sample Database |
|
|
159 | (3) |
|
|
162 | (7) |
|
|
169 | (3) |
|
|
172 | (2) |
|
|
174 | (1) |
|
Chapter 5 X Developer API |
|
|
175 | (80) |
|
|
176 | (5) |
|
|
177 | (1) |
|
Target Language Conformity |
|
|
178 | (2) |
|
|
180 | (1) |
|
|
181 | (63) |
|
|
185 | (6) |
|
|
191 | (28) |
|
Example Data Used in this Chapter |
|
|
219 | (1) |
|
|
220 | (13) |
|
|
233 | (3) |
|
|
236 | (8) |
|
|
244 | (8) |
|
|
244 | (4) |
|
|
248 | (1) |
|
|
249 | (2) |
|
|
251 | (1) |
|
|
252 | (1) |
|
|
253 | (2) |
|
|
255 | (30) |
|
|
255 | (8) |
|
|
256 | (4) |
|
Going Deeper---Journey into the Source Code |
|
|
260 | (3) |
|
|
263 | (8) |
|
How to View Values of Variables |
|
|
263 | (3) |
|
How to Set Values of Variables |
|
|
266 | (3) |
|
System Variables and Startup Options |
|
|
269 | (2) |
|
|
271 | (1) |
|
|
271 | (11) |
|
|
273 | (1) |
|
|
274 | (1) |
|
|
275 | (1) |
|
|
276 | (1) |
|
|
277 | (1) |
|
|
278 | (2) |
|
|
280 | (1) |
|
|
281 | (1) |
|
|
282 | (3) |
|
|
285 | (46) |
|
|
285 | (14) |
|
|
288 | (2) |
|
X Protocol and Protocol Buffers |
|
|
290 | (9) |
|
X Protocol: Under the Hood |
|
|
299 | (16) |
|
|
299 | (5) |
|
|
304 | (5) |
|
|
309 | (6) |
|
|
315 | (14) |
|
|
317 | (2) |
|
|
319 | (6) |
|
|
325 | (4) |
|
|
329 | (2) |
|
Chapter 8 Library Application: User Interface |
|
|
331 | (68) |
|
|
332 | (9) |
|
|
332 | (1) |
|
|
333 | (8) |
|
|
341 | (33) |
|
|
343 | (2) |
|
Initialization and the Application Instance |
|
|
345 | (9) |
|
|
354 | (14) |
|
|
368 | (2) |
|
|
370 | (1) |
|
|
371 | (1) |
|
Flask Review: Sample Application |
|
|
372 | (2) |
|
Library Application User Interface Design |
|
|
374 | (23) |
|
Preparing the Directory Structure |
|
|
375 | (1) |
|
|
376 | (4) |
|
|
380 | (4) |
|
|
384 | (3) |
|
|
387 | (6) |
|
|
393 | (4) |
|
|
397 | (2) |
|
Chapter 9 Library Application: Database Implementations |
|
|
399 | (92) |
|
Version 1 Relational Database |
|
|
400 | (34) |
|
|
400 | (4) |
|
|
404 | (13) |
|
|
417 | (14) |
|
|
431 | (1) |
|
|
431 | (2) |
|
|
433 | (1) |
|
Version 2 Relational Database + JSON Fields (Hybrid) |
|
|
434 | (27) |
|
|
434 | (3) |
|
|
437 | (13) |
|
|
450 | (6) |
|
|
456 | (2) |
|
|
458 | (3) |
|
|
461 | (1) |
|
|
461 | (28) |
|
|
462 | (1) |
|
|
463 | (14) |
|
|
477 | (7) |
|
|
484 | (2) |
|
|
486 | (3) |
|
|
489 | (1) |
|
|
489 | (1) |
|
|
490 | (1) |
|
Chapter 10 Planning for MySQL 8 and the Document Store |
|
|
491 | (34) |
|
Upgrading from MySQL 5.7 and Earlier |
|
|
492 | (12) |
|
|
492 | (4) |
|
|
496 | (5) |
|
|
501 | (1) |
|
Considerations for Upgrading to MySQL 8 |
|
|
502 | (2) |
|
Migrating to Schemaless Documents |
|
|
504 | (18) |
|
Normalization vs. Denormalization |
|
|
505 | (1) |
|
Formal Rules vs. Heuristics |
|
|
505 | (2) |
|
|
507 | (1) |
|
|
507 | (1) |
|
Strategies for Migrating to a Document Store |
|
|
508 | (14) |
|
Document Store Tips and Tricks |
|
|
522 | (2) |
|
|
524 | (1) |
Index |
|
525 | |