Oracle 数据文件收缩实例 数据文件的作用 HWM 的基本概念 查看数据文件的使用情况 包括内容:数据文件大小,已经 used 空间, free 空间, hwm 信息 select /*+ ordered use_hash(a,b,c) */ a.file_id,a.file_name,a.filesize, b.freesize, (a.filesize-b.fr
Oracle数据文件收缩实例
数据文件的作用
HWM的基本概念
查看数据文件的使用情况
包括内容:数据文件大小,已经used空间,free空间,hwm信息
select/*+ ordered use_hash(a,b,c) */
a.file_id,a.file_name,a.filesize, b.freesize,
(a.filesize-b.freesize) usedsize,
c.hwmsize,
c.hwmsize - (a.filesize-b.freesize) unsedsize_belowhwm,
a.filesize - c.hwmsize canshrinksize
from
(
select file_id,file_name,round(bytes/1024/1024) filesize from dba_data_files
) a,
(
select file_id,round(sum(dfs.bytes)/1024/1024) freesize from dba_free_space dfs
groupby file_id
) b,
(
select file_id,round(max(block_id)*8/1024) HWMsize from dba_extents
groupby file_id) c
where a.file_id = b.file_id
and a.file_id = c.file_id
orderby unsedsize_belowhwm desc
结果说明:
File_id :文件编号
File_name: 文件名称
File_size: 数据文件占用磁盘空间大小
Freesize:文件中被标记为free的空间大小
Usedsize: 使用的空间大小。
Hwmsize:已经分配出去的空间大小,如果希望通过alter database datafile … resize integerM回收空间,将需要这个值作为参考,不能回收到这个值之下,否则会报错。
Freee_belowhwm_size:在HWM(高水位标记线之下的空闲空间数),这个是理论上的可以回收的空间大小。
Curr_can_shrink:这个是实际大小与HWM标记之间的差,就是还没有分配出去的空间大小。
file_id |
file_name |
filesize |
freesize |
usedsize |
hwmsize |
free_belowhwm_size |
curr_can_shrink |
11 |
/oradata/ODSD01.dbf |
2048 |
1908 |
140 |
2048 |
1908 |
0 |
12 |
/oradata/ODSD02.dbf |
2048 |
1897 |
151 |
2048 |
1897 |
0 |
20 |
/oradata/ODSD10.dbf |
2048 |
1897 |
151 |
2048 |
1897 |
0 |
16 |
/oradata/ODSD06.dbf |
2048 |
1889 |
159 |
2048 |
1889 |
0 |
15 |
/oradata/ODSD05.dbf |
2048 |
1888 |
160 |
2048 |
1888 |
0 |
19 |
/oradata/ODSD09.dbf |
2048 |
1885 |
163 |
2048 |
1885 |
0 |
13 |
/oradata/ODSD03.dbf |
2048 |
1884 |
164 |
2048 |
1884 |
0 |
17 |
/oradata/ODSD07.dbf |
2048 |
1884 |
164 |
2048 |
1884 |
0 |
14 |
/oradata/ODSD04.dbf |
2048 |
1813 |
235 |
2041 |
1806 |
7 |
34 |
/oradata/DWD01.dbf |
4000 |
3701 |
299 |
2088 |
1789 |
1912 |
51 |
/oradata/ODSD11.dbf |
2048 |
1963 |
85 |
1584 |
1499 |
464 |
21 |
/oradata/ODSI01.dbf |
2048 |
1913 |
135 |
1617 |
1482 |
431 |
25 |
/oradata/ODSI05.dbf |
2048 |
1910 |
138 |
1607 |
1469 |
441 |
22 |
/oradata/ODSI02.dbf |
2048 |
1903 |
145 |
1606 |
1461 |
442 |
24 |
/oradata/ODSI04.dbf |
2048 |
1909 |
139 |
1592 |
1453 |
456 |
23 |
/oradata/ODSI03.dbf |
2048 |
1892 |
156 |
1603 |
1447 |
445 |
48 |
/oradata/ODSI06.dbf |
2048 |
1925 |
123 |
1559 |
1436 |
489 |
30 |
/oradata/TODSD05.dbf |
2048 |
1804 |
244 |
1315 |
1071 |
733 |
18 |
/oradata/ODSD08.dbf |
2048 |
1881 |
167 |
1225 |
1058 |
823 |
27 |
/oradata/TODSD02.dbf |
2048 |
1818 |
230 |
1244 |
1014 |
804 |
31 |
/oradata/TODSI01.dbf |
2048 |
1977 |
71 |
936 |
865 |
1112 |
35 |
/oradata/DWI01.dbf |
2048 |
1973 |
75 |
936 |
861 |
1112 |
32 |
/oradata/TODSI02.dbf |
2048 |
1969 |
79 |
867 |
788 |
1181 |
43 |
/oradata/DWI03.dbf |
2048 |
1975 |
73 |
802 |
729 |
1246 |
42 |
/oradata/DWI02.dbf |
2048 |
1983 |
65 |
755 |
690 |
1293 |
39 |
/oradata/TODSI04.dbf |
2048 |
1971 |
77 |
680 |
603 |
1368 |
26 |
/oradata/TODSD01.dbf |
2048 |
1819 |
229 |
830 |
601 |
1218 |
40 |
/oradata/TODSI05.dbf |
2048 |
1976 |
72 |
609 |
537 |
1439 |
28 |
/oradata/TODSD03.dbf |
2048 |
1793 |
255 |
702 |
447 |
1346 |
37 |
/oradata/TODSI03.dbf |
2048 |
1946 |
102 |
450 |
348 |
1598 |
29 |
/oradata/TODSD04.dbf |
2048 |
1793 |
255 |
485 |
230 |
1563 |
33 |
/oradata/CTL01.dbf |
500 |
494 |
6 |
21 |
15 |
479 |
10 |
/oradata/xdb01.dbf |
47 |
3 |
44 |
46 |
2 |
1 |
1 |
/oradata/system01.dbf |
1040 |
6 |
1034 |
1034 |
0 |
6 |
3 |
/oradata/cwmlite01.dbf |
20 |
2 |
18 |
18 |
0 |
2 |
4 |
/oradata/drsys01.dbf |
20 |
10 |
10 |
10 |
0 |
10 |
36 |
/oradata/OD01.dbf |
500 |
407 |
93 |
93 |
0 |
407 |
5 |
/oradata/example01.dbf |
139 |
0 |
139 |
139 |
0 |
0 |
54 |
/oradata/TCLKING.dbf |
5 |
0 |
5 |
5 |
0 |
0 |
56 |
/oradata/undotbs03.dbf |
1000 |
996 |
4 |
4 |
0 |
996 |
55 |
/oradata/HWM01.dbf |
5000 |
4963 |
37 |
37 |
0 |
4963 |
49 |
/oradata/DP23.dbf |
10 |
7 |
3 |
3 |
0 |
7 |
7 |
/oradata/odm01.dbf |
20 |
11 |
9 |
9 |
0 |
11 |
9 |
/oradata/users01.dbf |
83 |
0 |
83 |
82 |
-1 |
1 |
46 |
/oradata/RPTI01.dbf |
1024 |
802 |
222 |
221 |
-1 |
803 |
45 |
/oradata/RPTD01.dbf |
1024 |
923 |
101 |
100 |
-1 |
924 |
38 |
/oradata/FBI.dbf |
200 |
79 |
121 |
120 |
-1 |
80 |
对想收缩的表空间中的表及索引进行rebuild
建立测试表空间
SQL> create tablespace HWM datafile ‘/oradata/HWM01.dbf’ size 5000M;
Tablespace created;
SQL> alter tablespace HWM add datafile '/oradata/HWM02.dbf' size 5000M;
Tablespace altered
move表空间的long类型
LONG类型的数据超难管理,不能通过move来传输,也不能通过诸如insert t1 select long_col from t2的方式(或者使用游标可以解决这个问题)请注意在设计中尽量避免使用LONG类型。
检查当前表空间中的LONG类型字段。
select/*+use_hash(ds,dtc)*/
ds.tablespace_name,ds.owner||'.'||ds.segment_name,ds.segment_type,
dtc.DATA_TYPE,dtc.COLUMN_NAME
from dba_tab_columns dtc , dba_segments ds
where dtc.TABLE_NAME = ds.segment_name
and dtc.OWNER = ds.owner
and ds.tablespace_name notin ('SYSTEM','CWMLITE','EXAMPLE','UNDOTBS2','HWM')
and data_type = 'LONG'
tablespace |
segmentname |
segtype |
datatype |
colname |
CTL |
CTL.ETL_LOG |
TABLE |
LONG |
EXECUTE_SQL |
CTL |
CTL.PLAN_TABLE |
TABLE |
LONG |
OTHER |
DWD |
DW.PLAN_TABLE |
TABLE |
LONG |
OTHER |
CTL |
OD.PLAN_TABLE |
TABLE |
LONG |
OTHER |
FBI |
FBI.PLAN_TABLE |
TABLE |
LONG |
OTHER |
对long类型的数据处理的一个简单的方法实将LONG类型字段直接修改为LOB类型。
select/*+use_hash(ds,dtc)*/
'alter table '||ds.owner||'.'||ds.segment_name||' modify '||dtc.COLUMN_NAME||' clob;'
from dba_tab_columns dtc , dba_segments ds
where dtc.TABLE_NAME = ds.segment_name
and dtc.OWNER = ds.owner
and ds.tablespace_name notin ('SYSTEM','CWMLITE','EXAMPLE','UNDOTBS2','HWM')
and data_type = 'LONG'
修改类型语句 |
alter table CTL.ETL_LOG modify EXECUTE_SQL clob; |
alter table CTL.PLAN_TABLE modify OTHER clob; |
alter table DW.PLAN_TABLE modify OTHER clob; |
alter table OD.PLAN_TABLE modify OTHER clob; |
alter table FBI.PLAN_TABLE modify OTHER clob; |
SQL> alter table CTL.ETL_LOG modify EXECUTE_SQL clob;
Table altered
SQL> alter table CTL.PLAN_TABLE modify OTHER clob;
Table altered
SQL> alter table DW.PLAN_TABLE modify OTHER clob;
Table altered
SQL> alter table OD.PLAN_TABLE modify OTHER clob;
Table altered
SQL> alter table FBI.PLAN_TABLE modify OTHER clob;
Table altered
move表空间下的普通table及index
SQL> alter table tbname move tablespace newtbname;
Move一个表到另外一个表空间时,索引不会跟着一块move,而且会失效。在创建失效的索引之前,使用到索引的查询语句将会报错。失效的索引需要使用rebuild重创建。
Alter index index_name rebuild;
Alter index pk_name rebuild;
如果我们需要move索引到另外一个表空间,则需要使用rebuild
Alter index index_name rebuild tablespace tbs_name;
Alter index pk_name rebuild tablespace tbs_name;
select ds.tablespace_name,'alter table '||ds.owner||'.'||ds.segment_name||' move tablespace HWM;'
from dba_segments ds
where ds.tablespace_name notin('SYSTEM','CWMLITE','EXAMPLE','UNDOTBS2',
'HWM','XDB','WKSYS','CTXSYS','ODM_MTR','USERS','DRSYS','HTEC','HAPPYTREE')
and ds.segment_type = 'TABLE';
SQL> alter table ODS.SM_PRODUCT_SPEC_SHOW move tablespace HWM;
Table altered
SQL> alter table DW.D_PRODUCT_INFO move tablespace HWM;
Table altered
select ds.tablespace_name,'alter INDEX '||ds.owner||'.'||ds.segment_name||' rebuild tablespace HWM;'
from dba_segments ds
where ds.tablespace_name notin('SYSTEM','CWMLITE','EXAMPLE','UNDOTBS2',
'HWM','XDB','WKSYS','CTXSYS','ODM_MTR','USERS','DRSYS','HTEC','HAPPYTREE')
and ds.segment_type = 'INDEX'
…
SQL> alter INDEX CTL.IDX_TL_ADJUSTMENT_CONFIRMDATE rebuild tablespace HWM;
Index altered
SQL> alter INDEX CTL.IDX_TL_ADJUSTMENT_ORDER rebuild tablespace HWM;
Index altered
…
move表空间下的分区table及index
和普通表一样,索引也会失效,区别的仅仅是语法而已。
分区表move基本语法
如果是单级分区,则使用关键字partition,如果是多级分区,则使用subpartition替代partition。如果分区或分区索引比较大,可以使用并行move或rebuild,parallel(degree 2)。
重建全局索引
Alter index global_index rebuild;
或
Alter index global_index rebuild tablespace tbs_name;
重建局部索引
Alter table tab_name modify partition partition_name rebuild unusable local indexes;
或
Alter index local_index_name rebuild partition partition_name tablespace tbs_name;
Move分区表
select cname
from (
select rownum rm,'alter table '||ds.owner||'.'||ds.segment_name||' move partition '||ds.partition_name||' tablespace HWM;' cname
from dba_segments ds
where ds.tablespace_name notin('SYSTEM','CWMLITE','EXAMPLE','UNDOTBS2',
'HWM','XDB','WKSYS','CTXSYS','ODM_MTR','USERS','DRSYS','HTEC','HAPPYTREE')
and ds.segment_type = 'TABLE PARTITION'
) c
where rm between1and100;
循环执行上述语句,直到选不出结果。
SQL> alter table ODS.CR_PS_INVENTORY_ITEM move partition CR_PS_INVENTORY_ITEM_P070603 tablespace HWM;
Table altered
SQL> alter table ODS.CR_PS_INVENTORY_ITEM move partition CR_PS_INVENTORY_ITEM_P070604 tablespace HWM;
Table altered
重建全局索引
Oracle的全局索引也存储在dba_segments中,并以index标志,而且其重建方式跟普通索引一致,所以在执行忘回导入的时候需要按照move 普通表;move分区表;move全局索引;move分区索引;move lob对象的顺序进行。
重建分区索引
视图dba_part_indexes存储分区表的本地索引,查询发现当前系统中不存在本地索引,可以忽略。
select * from dba_part_indexes t where t.owner notin ('SYSTEM','SH')
move表空间下的LOB类型
在建立含有Lob字典的表时,oracle会自动为Lob字段建立两个单独的segment,一个用来存放数据(segment_type=LOBSEGMENT),另一个用来存放索引(segment_type=LOBINDEX)。默认他们会存储在和表一起的表空间。
我们对表move时,LOB类型字段和该字段索引不会跟着move,必须使用单据的语句来执行该字段的move,语法如下:
Alter table t321 move tablespace HWM;
Later table t321 move lob(en) store as (tablespace HWM);
select 'alter table '||dtc.owner||'.'||dtc.TABLE_NAME||' move lob('||dtc.COLUMN_NAME||') store as(tablespace HWM);'
from dba_tab_columns dtc
where dtc.OWNER in('CTL','DW','RPT','OD','ODS','TODS','FBI','DP22','DP23','TCLKING')
and dtc.DATA_TYPE like'%LOB'
SQL> alter table DP22.D_KPI move lob(KPIFORM) store as(tablespace HWM);
Table altered
SQL> alter table DP22.D_KPI move lob(KPIFORMDSPN) store as(tablespace HWM);
Table altered
执行完上述操作步骤后,我们检查tablespace的空间使用情况可以发现,所有相关数据文件的hwm都已经变为0,也就是说所有的空间都已经变为未分配状态。但这时如果我们将数据文件dump出去,会发现原来的数据还在,只不过在数据字典中将其标识为未分配。
Move对象的逆顺序
普通表对象
将普通表对象和分区表对象按照其owner的不同从HWM临时表空间move到其默认的表空间中区。
select ds.tablespace_name,'alter table '||ds.owner||'.'||ds.segment_name||' move tablespace '||du.default_tablespace||';'
from dba_segments ds , dba_users du
where ds.owner = du.username
and ds.owner in ('CTL','DW','RPT','OD','ODS','TODS','FBI','DP22','DP23','TCLKING')
and ds.tablespace_name = 'HWM'
and ds.segment_type = 'TABLE';
SQL> alter table TODS.CR_PARTY_RELATIONSHIP move tablespace TODSD;
Table altered
SQL> alter table TODS.CR_PARTY_RELATIONSHIP_TYPE move tablespace TODSD;
Table altered
分区表对象
select cname
from (
select rownum rm,'alter table '||ds.owner||'.'||ds.segment_name||' move partition '||ds.partition_name||' tablespace '||du.default_tablespace||';' cname
from dba_segments ds , dba_users du
where ds.owner = du.username
and ds.owner in ('CTL','DW','RPT','OD','ODS','TODS','FBI','DP22','DP23','TCLKING')
and ds.tablespace_name = 'HWM'
and ds.segment_type = 'TABLE PARTITION'
) c
where rm between1and500;
反复执行上述过程,直到没有记录可以选择。
SQL> alter table ODS.CR_PS_INVENTORY_ITEM move partition CR_PS_INVENTORY_ITEM_P080513 tablespace ODSD;
Table altered
SQL> alter table ODS.CR_PS_INVENTORY_ITEM move partition CR_PS_INVENTORY_ITEM_P080514 tablespace ODSD;
Table altered
索引对象
索引对象存储的tablespace的命令标准为username+’I’,如果类似的表空间不存在,我们就将索引数据存储到用户的默认表空间中。所以我们可以使用下面的语句将index rebuild到对应的表空间中。
select 'alter INDEX '||ds.owner||'.'||ds.segment_name||' rebuild tablespace '||nvl(dt.tablespace_name,du.default_tablespace)||';'
from dba_segments ds , dba_users du, dba_tablespaces dt
where ds.owner = du.username
and dt.tablespace_name(+) = du.username||'I'
and ds.owner in ('CTL','DW','RPT','OD','ODS','TODS','FBI','DP22','DP23','TCLKING')
and ds.tablespace_name = 'HWM'
and ds.segment_type = 'INDEX'
LOB类型
Lob类型数据随着table对象存储在对象owner的默认表空间中。
select 'alter table '||dtc.owner||'.'||dtc.TABLE_NAME||' move lob('||dtc.COLUMN_NAME||') store as(tablespace '||du.default_tablespace||');'
from dba_tab_columns dtc,dba_users du
where dtc.OWNER = du.username
and dtc.OWNER in('CTL','DW','RPT','OD','ODS','TODS','FBI','DP22','DP23','TCLKING')
and dtc.DATA_TYPE like'%LOB'
SQL> alter table FBI.TIME_FORMAT move lob(FORMAT) store as(tablespace FBI);
Table altered
SQL> alter table FBI.URLTABLE move lob(DETAIL) store as(tablespace FBI);
Table altered
SQL> alter table OD.PLAN_TABLE move lob(OTHER) store as(tablespace OD);
Table altered
收缩空闲表空间
首先,如果没有分配的空间不足100M,则不考虑收缩。
收缩目标:当前数据文件大小 - (没分配空间- 100M)×0.8
select/*+ ordered use_hash(a,c) */
'alter database datafile '''||a.file_name||''' resize '
||round(a.filesize - (a.filesize - c.hwmsize-100) *0.8)||'M;',
a.filesize,
c.hwmsize
from
(
select file_id,file_name,round(bytes/1024/1024) filesize from dba_data_files
) a,
(
select file_id,round(max(block_id)*8/1024) HWMsize from dba_extents
groupby file_id) c
where a.file_id = c.file_id
and a.filesize - c.hwmsize > 100
收缩语句 |
文件大小 |
收缩目标 |
alter database datafile '/oradata/HWM02.dbf' resize 2671M; |
5000 |
1989 |
alter database datafile '/oradata/ODSD01.dbf' resize 598M; |
2048 |
136 |
alter database datafile '/oradata/ODSD02.dbf' resize 592M; |
2048 |
128 |
alter database datafile '/oradata/ODSD03.dbf' resize 591M; |
2048 |
127 |
alter database datafile '/oradata/ODSD04.dbf' resize 742M; |
2048 |
316 |
alter database datafile '/oradata/ODSD05.dbf' resize 594M; |
2048 |
130 |
alter database datafile '/oradata/ODSD06.dbf' resize 597M; |
2048 |
134 |
alter database datafile '/oradata/ODSD07.dbf' resize 598M; |
2048 |
135 |
alter database datafile '/oradata/ODSD08.dbf' resize 472M; |
1470 |
122 |
alter database datafile '/oradata/ODSD09.dbf' resize 587M; |
2048 |
122 |
alter database datafile '/oradata/ODSD10.dbf' resize 595M; |
2048 |
132 |
alter database datafile '/oradata/ODSI01.dbf' resize 507M; |
1783 |
88 |
alter database datafile '/oradata/ODSI02.dbf' resize 505M; |
1774 |
88 |
alter database datafile '/oradata/ODSI03.dbf' resize 529M; |
1772 |
118 |
alter database datafile '/oradata/ODSI04.dbf' resize 517M; |
1763 |
105 |
alter database datafile '/oradata/ODSI05.dbf' resize 525M; |
1775 |
113 |
alter database datafile '/oradata/TODSD01.dbf' resize 497M; |
1154 |
233 |
alter database datafile '/oradata/TODSD02.dbf' resize 561M; |
1485 |
230 |
alter database datafile '/oradata/TODSD03.dbf' resize 465M; |
1051 |
218 |
alter database datafile '/oradata/TODSD04.dbf' resize 431M; |
878 |
219 |
alter database datafile '/oradata/TODSD05.dbf' resize 598M; |
1542 |
262 |
alter database datafile '/oradata/TODSI01.dbf' resize 385M; |
1238 |
72 |
alter database datafile '/oradata/TODSI02.dbf' resize 365M; |
1183 |
60 |
alter database datafile '/oradata/CTL01.dbf' resize 146M; |
197 |
33 |
alter database datafile '/oradata/DWD01.dbf' resize 770M; |
2550 |
225 |
alter database datafile '/oradata/DWI01.dbf' resize 386M; |
1238 |
73 |
alter database datafile '/oradata/OD01.dbf' resize 152M; |
254 |
27 |
alter database datafile '/oradata/TODSI03.dbf' resize 288M; |
850 |
48 |
alter database datafile '/oradata/TODSI04.dbf' resize 324M; |
1034 |
46 |
alter database datafile '/oradata/TODSI05.dbf' resize 343M; |
977 |
84 |
alter database datafile '/oradata/DWI02.dbf' resize 356M; |
1094 |
72 |
alter database datafile '/oradata/DWI03.dbf' resize 366M; |
1131 |
75 |
alter database datafile '/oradata/RPTD01.dbf' resize 231M; |
365 |
98 |
alter database datafile '/oradata/RPTI01.dbf' resize 300M; |
462 |
159 |
alter database datafile '/oradata/ODSI06.dbf' resize 505M; |
1737 |
97 |
alter database datafile '/oradata/ODSD11.dbf' resize 535M; |
1757 |
129 |
alter database datafile '/oradata/undotbs03.dbf' resize 176M; |
283 |
49 |
检查磁盘当前剩余空间
$ bdf
/dev/vg01/lvol1 133120000 33173720 99166120 25% /oradata
小结
执行整个步骤之前,/oradata磁盘下的剩余空间不足6G,执行步骤之后我们看到,目前系统中有将近100G的剩余空间^_^。
效果明显。

Innodbbufferpool mengurangkan cakera I/O dengan data caching dan halaman pengindeksan, meningkatkan prestasi pangkalan data. Prinsip kerjanya termasuk: 1. Bacaan Data: Baca data dari Bufferpool; 2. Penulisan Data: Selepas mengubah suai data, tulis kepada Bufferpool dan menyegarkannya ke cakera secara teratur; 3. Pengurusan cache: Gunakan algoritma LRU untuk menguruskan halaman cache; 4. Mekanisme Membaca: Muatkan halaman data bersebelahan terlebih dahulu. Dengan saiz bufferpool dan menggunakan pelbagai contoh, prestasi pangkalan data dapat dioptimumkan.

Berbanding dengan bahasa pengaturcaraan lain, MySQL digunakan terutamanya untuk menyimpan dan mengurus data, manakala bahasa lain seperti Python, Java, dan C digunakan untuk pemprosesan logik dan pembangunan aplikasi. MySQL terkenal dengan prestasi tinggi, skalabilitas dan sokongan silang platform, sesuai untuk keperluan pengurusan data, sementara bahasa lain mempunyai kelebihan dalam bidang masing-masing seperti analisis data, aplikasi perusahaan, dan pengaturcaraan sistem.

MySQL bernilai belajar kerana ia adalah sistem pengurusan pangkalan data sumber terbuka yang sesuai untuk penyimpanan data, pengurusan dan analisis. 1) MySQL adalah pangkalan data relasi yang menggunakan SQL untuk mengendalikan data dan sesuai untuk pengurusan data berstruktur. 2) Bahasa SQL adalah kunci untuk berinteraksi dengan MySQL dan menyokong operasi CRUD. 3) Prinsip kerja MySQL termasuk seni bina klien/pelayan, enjin penyimpanan dan pengoptimum pertanyaan. 4) Penggunaan asas termasuk membuat pangkalan data dan jadual, dan penggunaan lanjutan melibatkan menyertai jadual menggunakan Join. 5) Kesilapan umum termasuk kesilapan sintaks dan isu kebenaran, dan kemahiran debugging termasuk menyemak sintaks dan menggunakan perintah menjelaskan. 6) Pengoptimuman prestasi melibatkan penggunaan indeks, pengoptimuman penyata SQL dan penyelenggaraan pangkalan data yang tetap.

MySQL sesuai untuk pemula untuk mempelajari kemahiran pangkalan data. 1. Pasang alat pelayan dan klien MySQL. 2. Memahami pertanyaan SQL asas, seperti SELECT. 3. Operasi data induk: Buat jadual, masukkan, kemas kini, dan padam data. 4. Belajar Kemahiran Lanjutan: Fungsi Subquery dan Window. 5. Debugging dan Pengoptimuman: Semak sintaks, gunakan indeks, elakkan pilih*, dan gunakan had.

MySQL dengan cekap menguruskan data berstruktur melalui struktur jadual dan pertanyaan SQL, dan melaksanakan hubungan antara meja melalui kunci asing. 1. Tentukan format data dan taip apabila membuat jadual. 2. Gunakan kunci asing untuk mewujudkan hubungan antara jadual. 3. Meningkatkan prestasi melalui pengindeksan dan pengoptimuman pertanyaan. 4. Secara kerap sandaran dan memantau pangkalan data untuk memastikan pengoptimuman keselamatan data dan prestasi.

MySQL adalah sistem pengurusan pangkalan data sumber terbuka yang digunakan secara meluas dalam pembangunan web. Ciri -ciri utamanya termasuk: 1. Menyokong pelbagai enjin penyimpanan, seperti InnoDB dan Myisam, sesuai untuk senario yang berbeza; 2. Menyediakan fungsi replikasi master-hamba untuk memudahkan pengimbangan beban dan sandaran data; 3. Meningkatkan kecekapan pertanyaan melalui pengoptimuman pertanyaan dan penggunaan indeks.

SQL digunakan untuk berinteraksi dengan pangkalan data MySQL untuk merealisasikan penambahan data, penghapusan, pengubahsuaian, pemeriksaan dan reka bentuk pangkalan data. 1) SQL Melaksanakan operasi data melalui Pilih, Masukkan, Kemas kini, Padam Penyataan; 2) Gunakan pernyataan membuat, mengubah, drop untuk reka bentuk dan pengurusan pangkalan data; 3) Pertanyaan kompleks dan analisis data dilaksanakan melalui SQL untuk meningkatkan kecekapan membuat keputusan perniagaan.

Operasi asas MySQL termasuk membuat pangkalan data, jadual, dan menggunakan SQL untuk melakukan operasi CRUD pada data. 1. Buat pangkalan data: createdatabasemy_first_db; 2. Buat Jadual: CreateTableBooks (Idintauto_IncrementPrimaryKey, Titlevarchar (100) NotNull, Authorvarchar (100) NotNull, Published_yearint); 3. Masukkan Data: InsertIntoBooks (Tajuk, Pengarang, Published_year) VA


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

Dreamweaver CS6
Alat pembangunan web visual

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa