2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Lingua SQL in quattuor genera dividitur: data interrogatione lingua DQL, data manipulatione lingua DML, data definitio linguae DDL, et data moderatio linguae DCL.
1. Data Query Linguae DQL
Fundamentalis structura quaestionis datae linguae DQL quaesitum est clausula composita ex clausula SELECTA, EX clausula, et WHERE clausulam: SELECT <agro nomen tabulae> FROM <mensa vel sententia nomen> WHERE condiciones quaesitae>
2. Data Manipulationis Linguae DML
Tres formae principales manipulationis notitiae linguae DML sunt:
1) insert: INDO
II) Update: UPDATE
III) Delere: DELETE
3. Data Definition Language DDL
Data definitione lingua DDL varia ad creandum usus est in datorum ----- tabulis, sententiis, indicibus, synonymis, racemis, etc., ut: CREATE TABLE / VIEW / INDEX / SYN/CLUSTER | . DDL operationes implicite submittuntur! Non potest reverti
4. Data Linguae Imperium DCL
Data linguae DCL moderatio adhibetur ut quaedam privilegia concedere vel revocare ad accessum datorum, tempus et effectus manipulationis datorum transactionum regere, ac monitor datorum datorum. similis;
I) Grant: LICENTIA.
2) ROLLBACK TO [SAVEPOINT]: Reverti ad certum punctum. REVERSUS---ROLLBACK The rollback imperium redit status datorum ad ultimam rem publicam subiecti. Forma eius est: SQL>ROLLBACK;
3) COMMENDO [OFFICIUM]: Submit. Per insertionem, deletionem et modificationem datorum operationes, transactio tantum perficitur cum datorum exhibetur. Antequam transactiones committuntur, solus homo datorum ius habet videndi quod factum est.
Imperium database imperium:
CONCEDE in mensa nomen (vel columnae nomen) ad user
Recta responsio optio B: inserere, eligere: permissio mensa nomen: user user: nkw
Accessiones scientiarum puncta redivivus permissionum
RESTITUO in tabula nomen (or columnae nomen) FROM user
Credo omnibus notum esse enuntiationem explicare, quae adhibetur ut enuntiatio ad consilium exsecutionis spectandum. explica saepe in SQL optimization analysis.
Notatu dignum est hic: explicatio verba non actu exequi, sed consilium exsecutionis ostendit.
Quid possum videre notitia?
- EXPLAIN SELECT select具体语句
- 如:
- EXPLAIN SELECT * FROM userpro
List | describere | Reple |
id | Quisque keyword quod correspondet id | |
select_type | Query genus keyword correspondentes SELECTA | |
mensa | Nomen mensa | |
partitiones | Matching partitio notitia | |
type | Accessum modum unius mensae | |
possible_keys | Indexes fieri | |
clavis | ipsa index usus | |
key_len | In re indice longitudo usus est | |
ref** | Cum indicem columnae per interrogationem aequivalentiam adhibens, obiectum informationis indicem columnae ad aequivalentiam aequet. | |
ordines | Aestimari numerum records ut legitur | |
percolantur | CENTESIMA reliquiarum monumentorum cum eliquare per criteria quaestionis denota |
|
Extra | extra informationem |
1,id
Quisque keyword quod correspondet id
Quanto maior valor id est, eo prior prior est et prius exsecutus est.
Si IDs idem sunt, considerari possunt ut coetus et successiue a summo ad imum fungantur.
Quisque ID numerus quaestionem independentem repraesentat.
2,select_type
genus | illustrare |
SIMPLICI? | Singula tabella quaesita, nulla quaestionis aut coniunctio quaesita est. |
PRIMIGENUS | Extremum verbum in interrogatione SELECT. |
SUBQUERY | Subquery adhibetur in WHERE clausula. |
ADSCITUS | Subqueries enim, quae in FROM clausula continentur, MySQL ut DERIVATA (derivata) notabit et ad tempus tabellam generabit propter exitum per interrogationem exteriorem ad usum adhibitam. |
CONIUGATIO | In interrogatione secunda et subsequente enuntiata in Unione quaesita est. |
CONIUNCTIO RESULT | Ex interrogatione unionis pone eventum. |
SUBQUERY CLIENS | Effectus quaesiti pendet ex valore interrogationis exterioris, et quaesitio semel pro quolibet ordine in interrogatione exteriore supplicium est. |
CONIUNCTIO CLIENS | In secunda et subsequenti interrogatione enuntiata inquisitionis Unionis, et eventus pendent in valore interrogationis exterioris |
INaccessibile SUBQUERY | Subqueratio condiri non potest et exsecutioni mandari quoties id refertur. |
3. Mensa columna nomen tabellae significat mensam (interdum non nomen tabellae realis, fortasse abbreviationem).
4. partitiones (libitum)
5. genus
Genera communia sunt haec
type | illustrare |
systema | Unus ordo est in mensa, fere SELECT ... FROM DUAL Query ipsum. |
const | Quaestio per indicem semel invenitur, uno tantum versuum eventuum (tabula constanti). |
eq_ref | Singulari indice seu prima clave utere ut ordinem ex alia tabula invenias. |
ref** | Indice non singulari utere ut unum vel plures ordines ex alia tabula invenias. |
range | Referre ordines amplis utens indicem. |
index | Omnino perlustrat indicem ad ordines magis quam totam mensam intuens. |
omnis | Mensa plena scan omnem ordinem in mensa supprimit. |
Fere omnia vitanda
6, key et possible_keys
clavis:
key
ager indicat index rei interrogationis adhibitae.Si campus huius pretii estNULL
nullum index adhibitum indicans. Si hic campus valorem habet, MySQL indicem praefinitum usus est ad interrogationem faciendam.possible_keys:
possible_keys
Agro ostendit catalogum indices quibus MySQL uti potest. Hi indices sunt indices qui in quaestionibus considerari possunt, sed non actu adhiberi. plerumque,possible_keys
Indices qui in eo recensiti sunt secundum interrogationis condiciones et tabulae structuram determinantur.si key
ager nomen habet indicem etpossible_keys
Multiplex index nominum in eo recensetur, significans MySQL selegitkey
Index quibus ager inscriptus est, ad interrogationem faciendam usus est, ceteri indices inscripti suntpossible_keys
Medium dixit posse etiam considerari, sed ultimo non utendum.
si key
agri suntNULL
,et possible_keys
Multiplex index nominum in eo recensetur, significans MySQL nullo indice uti in exequendo interrogatione, quae in plena mensa scapula vel aliis modis accessi non-indici optimized evenire potest.
7,key_len
key_len
Estne campus longitudinis indices clavis describens. Indicat indicem usum et indicem clavem longitudinis, cum MySQL indice specifico ad interrogationes exequendas utitur.
Una columna index:
INT
, sed key_len
Valor est columnae longitudo.VARCHAR
, sed key_len
Valor agri longitudo maxima est.compositum index:
key_len
Totam columnam in indice repraesentat.combined index:
key_len
est tota longitudo omnium columnarum in indice coniuncto.index praepositionis:
key_len
Longitudo ipsa index partis demonstrabitur.8,ref
ref
Ager est qui nexum inter tabulas conditiones describit vel indice non-unico ad quaerendum utitur. Indicat quae condiciones iungunt vel quibus indices MySQL utitur ad mensam accedere cum interrogatione exsequens.
9, porticus
rows
Estne aestimatio numeri ordinum accessi vel examinati in exsequendo quaesitum.
SELECT
quaere,rows
Repraesentat numerum versuum extimationis reddere.JOIN
) seu subquery;rows
Repraesentet numerum ordinum accessed in iuncta operatione.rows
Repraesentent numerum versuum lustratam.10, percolantur
Ordines eliquatos ex UB condiciones et indices condiciones recipis repraesentet. eliquata refert interrogationem optimizationem ab ipso optimizer aestimatam.
quando filtered
Cum prope est ad 100%, significat condiciones quaesitionis efficaciter percolari plures ordines, qui condiciones non conveniant, quod plerumque bonam optimiizationem indicat.
Sed contra, si filtered
Vile momentum indicare potest condiciones interrogationis satis certae non esse vel optimizer non efficaciter utendo indicem ad notitias eliquandas.
11,Extra
Additional information agros
Hic sunt quaedam communia Extra
Agrorum significationes;
Using index:
per ubi:
Using temporalis:
per filesort:
range sedatus ad singulas tabulas (index map: ...):
range
Genus in interrogatione.Plena scan in NULL clavem:
Distincte:
Utens quiddam copulare (Block Nested Loop):
Impossibile WHERE:
Nulla tabularum usus:
SELECT NOW()
。- CREATE TABLE s1 (
- id INT AUTO_INCREMENT,
- key1 VARCHAR(100),
- key2 INT,
- key3 VARCHAR(100),
- key_part1 VARCHAR(100),
- key_part2 VARCHAR(100),
- key_part3 VARCHAR(100),
- common_field VARCHAR(100),
- PRIMARY KEY (id),
- INDEX idx_key1 (key1),
- UNIQUE INDEX idx_key2 (key2),
- INDEX idx_key3 (key3),
- INDEX idx_key_part(key_part1, key_part2, key_part3)
- ) ENGINE=INNODB CHARSET=utf8;
- CREATE TABLE s2 (
- id INT AUTO_INCREMENT,
- key1 VARCHAR(100),
- key2 INT,
- key3 VARCHAR(100),
- key_part1 VARCHAR(100),
- key_part2 VARCHAR(100),
- key_part3 VARCHAR(100),
- common_field VARCHAR(100),
- PRIMARY KEY (id),
- INDEX idx_key1 (key1),
- UNIQUE INDEX idx_key2 (key2),
- INDEX idx_key3 (key3),
- INDEX idx_key_part(key_part1, key_part2, key_part3)
- ) ENGINE=INNODB CHARSET=utf8;
Data a te ipso parata est.
Una mensa query
EXPLAIN SELECT * FROM `s1`;
Iungere quaesitum
EXPLAIN SELECT * FROM `s1` INNER JOIN `s2`;
subquery
- EXPLAIN SELECT * FROM s1 WHERE key1 IN (SELECT key2 FROM s2 WHERE common_field
- = 'a');
- #Union 去重
- EXPLAIN SELECT * FROM `s1` UNION SELECT * FROM `s2`;
- #Union 全查
- EXPLAIN SELECT * FROM `s1` UNION ALL SELECT * FROM `s2`;
Ultimus gradus est deduplicatio, ut mensa temporaria adhibeatur. Sed, CONIUGATIO OMNES quaesitum est pro omnibus, et nulla tabella temporalis quaestionis nuntius apparebit.
const (indicem semel invenire, uno tantum versu proventuum)
EXPLAIN SELECT * FROM s1 WHERE id = 10002;
eq_ref (reperio a row a unique utens indicem seu primam aliam mensam clavis)
EXPLAIN SELECT * FROM s1 INNER JOIN s2 ON s1.id = s2.id;
ref (utor a non-unicus index ad inveniendum vel ordines ab alia mensa)
EXPLAIN SELECT * FROM s1 WHERE key1 = 'a';
range (redit ordines rhoncus utens indicem)
EXPLAIN SELECT * FROM s1 WHERE key1 IN ('a', 'b', 'c');
index (ad indicem versuum omnino scan)
EXPLAIN SELECT key_part2 FROM s1 WHERE key_part3 = 'a';
percolantur punctum temporis
EXPLAIN SELECT * FROM s1 WHERE key1 > 'za' AND common_field = 'la'