百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

oracle数据库实际项目中开发经验总结(上)

mhr18 2024-10-04 17:09 23 浏览 0 评论

1、在ORACLE中返回游标结果集

写包:

create or replace package pag_cs_power as

type c_Type is ref cursor;

FUNCTION FUN_CS_GETDICTLIST(

v_DictIndex in varchar2) return c_Type;

end pag_cs_power;

函数:

FUNCTION FUN_CS_GETDICTLIST(

v_DictIndex in varchar2) return c_Type

as

c_cursor c_Type;

begin

open c_cursor for

select DICTID,DICTNAME FROM SYS_DICT WHERE DICTINDEX = v_DictIndex;

return c_cursor;

end FUN_CS_GETDICTLIST;

2、单引号的插入问题

SQL> insert into a values('i''m good'); --两个''可以表示一个'

SQL> insert into a values('i'||chr(39)||'m good'); --chr(39)代表字符'

SQL> insert into a values('a'||'&'||'b');

3、全数据库的导入与导出

exp username/password full=y file=yourdata.dmp grants=y rows=y

imp username/password full=y ignore=y file=yourdata.dmp grants=y

4、exp与imp的具体用法

exp username/password@mzbs_61 full=y file=yourdata.dmp grants=y rows=y

imp username/password full=y ignore=y file=yourdata.dmp grants=y

exp mzbs/mzbs@mzbs_61 file = c:/zzzzzzz.dmp grants = y rows = y

imp mzbs/mzbs@mzbs_61 file = c:/zzzzzzz.dmp grants = y ignore=y FULL=Y

5、如果在like的变量中,是以‘%’开头的话,是不会使用index的。反之,不是以‘%‘开头,而又有相应的index,是会使用index的。具体可以用plain plan来看一下。

6、复制空表结构

create table new_table

as select * from old_table where 1=2;

复制表(含记录)

create table new_table

as select * from old_table ;

7、把一个用户下的表导入到另一个用户下,但需要改名

先用exp导出所有的表;

用imp将导出的表导入到新用户;

在新用户下,执行

select 'RENAME TABLE '||tname||' TO NEW_'||tname||';'

from tab

where tabtype='TABLE';

将上面的查询结果保存到一个sql文件中,处理后执行就可以了。

8、审计步骤

修改参数文件init.ora,参数audit_trail值为true;

重新启动数据库;

打开审计audit session; (audit session by username)

执行登录操作;

察看审计结果:

select * from dba_audit_session;

select * from sys.aud$;

select * from dba_audit_trail;

select * from dba_audit_exists;

关于审计:

为了使oracle8i的审计功能可用,必须在数据库参数文件中修改audit_trail初始参数,而这个修改并不支配oracle8i把生成的审计记录记入审计痕迹中,

由于状态,特权和模式对象已被修改,因而审计的默认值不可用,其参数应设置为none.下面列出了audit_trail 可用的参数

db_使数据库审计和全部直属审计记录到数据库审计的痕迹中

os_是数据库审计依据直属审计记入到操作系统的审计很集中

none_不可用

9、如何在Windows 2000下将Oracle完全卸载?

一、系统环境:

(1)、操作系统:Windows 2000 Server,机器内存128M

(2)、数据库: Oracle 8i R2 (8.1.6) for NT 企业版

(3)、安装路径:D:/ORACLE

二、卸载步骤:

(1)、开始->设置->控制面板->管理工具->服务

停止所有Oracle服务。

(2)、开始->程序->Oracle - OraHome81->Oracle Installation Products->Universal Installer

卸装所有Oracle产品

(3)、运行regedit,选择HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE,按del键删除这个入口。

(4)、运行regedit,选择HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services,滚动这个列表,删除所有Oracle入口

(5)、从桌面上、STARTUP(启动)组、程序菜单中,删除所有有关Oracle的组和图标

(6)、重新启动计算机,重起后才能完全删除Oracle所在目录

(7)、删除与Oracle有关的文件,选择Oracle所在的缺省目录C:/Oracle,删除这个入口目录及所有子目录,

并从Windows 2000目录(一般为C:/WINNT)下删除以下文件

ORACLE.INI、oradim80.INI

(8)、WIN.INI文件中若有[ORACLE]的标记段,删除该段

10、如何使用OEM

先启数据库服务,再启oracle manager服务。

否则重建档案资料库

如果还不行就把ORACLEHOME/NETWORK/sqlnet.ora文件的内容

sqlnet.authentication_services=(NTS)

改成sqlnet.authentication_services=(NONE)

登录 sysman/oem_temp

11、分析表

analyze table mzbs.db_code ESTIMATE STATISTICS SAMPLE 20 PERCENT;

12、表空间管理和用户管理

--查看表空间和数据文件

select file_name,tablespace_name,autoextensible from dba_data_files;

--数据表空间

CREATE TABLESPACE USER_DATA

LOGGING

DATAFILE 'D:/ORACLE/ORADATA/ORCL/test.DBF' SIZE 50m REUSE ,

'c:/USERS01112.DBF' SIZE 50m REUSE

AUTOEXTEND

ON NEXT 1280K MAXSIZE 16383M EXTENT MANAGEMENT LOCAL

--修改表空间数据文件的路径

ALTER TABLESPACE app_data

RENAME

DATAFILE '/DISK4/app_data_01.dbf'

TO '/DISK5/app_data_01.dbf';

ALTER DATABASE

RENAME FILE '/DISK1/system_01.dbf'

TO '/DISK2/system_01.dbf';

--临时表空间

CREATE TEMPORARY

TABLESPACE USER_DATA_TEMP TEMPFILE 'D:/TEMP0111.DBF'

SIZE 50M REUSE AUTOEXTEND

ON NEXT 1024K MAXSIZE 16383M EXTENT MANAGEMENT LOCAL UNIFORM

SIZE 1024K

--增加数据文件

ALTER TABLESPACE USER_DATA

ADD DATAFILE 'c:/USERS01113.DBF' SIZE 50M;

ALTER TABLESPACE USER_DATA

ADD DATAFILE 'c:/USERS01114.DBF' SIZE 50M

AUTOEXTEND ON

;

--删除表空间

DROP TABLESPACE USER_DATA INCLUDING CONTENTS;

--修改表空间的存储参数

ALTER TABLESPACE tablespacename

MINIMUM EXTENT 2M;

ALTER TABLESPACE tablespacename

DEFAULT STORAGE (

INITIAL 2M

NEXT 2M

MAXEXTENTS 999 );

--表空间联机/脱机/只读

ALTER TABLESPACE tablespacename OFFLINE/ONLINE/READ ONLY;

--修改数据文件大小

ALTER DATABASE

DATAFILE 'c:/USERS01113.DBF' RESIZE 40M;

--创建用户、赋予权限

CREATE USER USER_DATA PROFILE DEFAULT IDENTIFIED BY USER_DATA

DEFAULT

TABLESPACE USER_DATA TEMPORARY

TABLESPACE USER_DATA ACCOUNT UNLOCK;

GRANT CONNECT TO USER_DATA;

GRANT RESOURCE TO USER_DATA;

13、表的管理

--创建表

CREAE TABLE TABLENAME

(COLUMN1 COLUTYPE DEFAULT(VALUE) NOT NULL)

(COLUMN2 COLUTYPE DEFAULT(VALUE) NOT NULL);

--建表的索引存储分配

CREATE TABLE summit.employee(id NUMBER(7) CONSTRAINT employee_id_pk PRIMARY KEY DEFERRABLE USING INDEX STORAGE(INITIAL 100K NEXT 100K)

TABLESPACE indx,

last_name VARCHAR2(25) CONSTRAINT employee_last_name_nn NOT NULL,

dept_id NUMBER(7))

TABLESPACE data;

--修改表的存储分配

ALTER TABLE tablename

PCTFREE 30

PCTUSED 50

STORAGE(NEXT 500K

MINEXTENTS 2

MAXEXTENTS 100);

ALTER TABLE tablename

ALLOCATE EXTENT(SIZE 500K

DATAFILE '/DISK3/DATA01.DBF');

--把表移到另一个表空间

ALTER TABLE TABLENAME MOVE TABLESPACE TABLESPACENAME;

--回收空闲的空间(回收到High-water mark)

全部回收需要TRUNCATE TABLE tablename

ALTER TABLE tablename

DEALLOCATE UNUSED;

--删除表(连同所用constraint)

DROP TABLE tablename

CASCADE CONSTRAINTS;

--给表增加列

ALTER TABLE TABLENAME

ADD COLUMN COLUTYPE DEFAULT(VALUE) NOT NULL;

--删除表中的列

ALTER TABLE tablename

DROP COLUMN columnname;

ALTER TABLE tablename

DROP COLUMN columnname

CASCADE CONSTRAINTS CHECKPOINT 1000;

--标记列不可用

ALTER TABLE tablename

SET UNUSED COLUMN columnname

CASCADE CONSTRAINTS;

--删除标记为不可用的列

ALTER TABLE tablename

DROP UNUSED COLUMNS CHECKPOINT 1000;

--继续删除列选项

ALTER TABLE tablename

DROP COLUMNS CONTINUE CHECKPOINT 1000;

--把表放到BUFFER_POOL中去

ALTER TABLE tablename

STORAGE (BUFFER_POOL RECYCLE);

--避免动态分配EXTENT

ALTER TABLE tablename ALLOCATE EXTENT;

--把表放到CACHE中去

ALTER TABLE tablename ALLOCATE CACHE/NOCACHE;

14、索引管理

--创建索引

CREATE INDEX indexname ON TABLENAME(COLUMNNAME);

CREATE INDEX indexname ON TABLENAME(COLUMNNAME) TABLESPACE TABLESPACENAME;

--重新建立索引

ALTER INDEX indexname REBUILD TABLESPACE TABLESPACE;

--索引分配参数

ALTER INDEX indexname

STORAGE(NEXT 400K

MAXEXTENTS 100);

--释放索引空间

ALTER INDEX indexname

ALLOCATE EXTENT (SIZE 200K

DATAFILE '/DISK6/indx01.dbf');

ALTER INDEX indexname

DEALLOCATE UNUSED;

--重新整理索引表空间碎片

ALTER INDEX indexname COALESCE;

--删除索引

DROP INDEX indexname

--把索引放到BUFFER_POOL中

ALTER INDEX cust_name_idx

REBUILD

STORAGE (BUFFER_POOL KEEP);

15、约束管理

--建立主键

ALTER TABLE TABLENAME

ADD CONSTRAINT CONSTRAINTNAME PRIMARY KEY(COLUMN1,COLUMN2)

--使约束无效

ALTER TABLE TABLENAME ENABLE NOVALIDATE CONSTRAINT constraintname;

ALTER TABLE TABLENAME ENABLE VALIDATE CONSTRAINT constraintname;

--删除约束

ALTER TABLE tablename DROP CONSTRAINT constraintname;

DROP TABLE tablename CASCADE CONSTRAINTS;(删除表后将所用的外键删除)

--给列增加缺省值

ALTER TABLE TABLENAME

MODIFY columnname DEFAULT(value) NOT NULL;

--给表增加外键

ALTER TABLE tablename

ADD CONSTRAINT constraintname

FOREIGN KEY(column) REFERENCES table1name(column1);

16、日志文件管理

--切换日志文件

ALTER SYSTEM SWITCH LOGFILE;

--增加日志文件

ALTER DATABASE ADD LOGFILE

('/DISK3/log3a.rdo',

'/DISK4/log3b.rdo') size 1M;

--增加日志成员

ALTER DATABASE ADD LOGFILE MEMBER

'/DISK4/log1b.rdo' TO GROUP 1

'/DISK4/log2b.rdo' TO GROUP 2;

--删除日志文件

ALTER DATABASE DROP LOGFILE GROUP 3;

--删除日志成员

ALTER DATABASE DROP LOGFILE MEMBER '/DISK4/log2b.dbf';

--清除日志文件内容

ALTER DATABASE CLEAR LOGFILE '/DISK3/log2a.rdo';

17、Oracle常见服务

几个主要的:

OracleOraHome81TNSListener 监听服务

OracleServiceSID ORACLE服务

OracleOraHome81Agent 智能代理服务

OracleOraHome81CMan 连接管理服务

OracleOraHome81HTTPServer APACHE WEB 服务

OracleOraHome81ManagementServer ORACLE 企业管理器服务

OracleOraHome81Names ORACLE命名服务

18、ORACLE的热备份

在不关闭数据库的时候进行ORACLE的备份。

原理停复杂的,你去找本书看看吧。

举个简单的例子:备份表空间USERS

ALTER TABLESPACE USERS BEGIN BACKUP

COPY USERS TABLESPACE 的数据文件到备份目录

ALTER TABLESPACE USERS END BACKUP

19、导致索引不起作用的解决办法

问题是由optimizer_mode参数引起的,该参数的默认值为choose,即为如表有statis则查询走基于cost的方式,否则走基于rule的方式,因些你可以有以下几个解决方法。

(1)、简单的在init<sid>.ora中设optimizer_mode=rule,重起数据库。

(2)、使用analyze table table_name(索引基表) delete statistics;

(3)、最后一个万能办法,将表和索引drop掉,重建。

20、关于数据库进程的问题。

(1).查看相关进程在数据库中的会话

Select a.sid,a.serial#,a.program, a.status ,

substr(a.machine,1,20), a.terminal,b.spid

from v$session a, v$process b

where a.paddr=b.addr

and b.spid = &spid;

(2).查看数据库中被锁住的对象和相关会话

select a.sid,a.serial#,a.username,a.program,

c.owner, c.object_name

from v$session a, v$locked_object b, all_objects c

where a.sid=b.session_id and

c.object_id = b.object_id;

(3).查看相关会话正在执行的SQL

select sql_text from v$sqlarea where address =

( select sql_address from v$session where sid = &sid );

21、查看IP地址

select SYS_CONTEXT('USERENV','IP_ADDRESS') from dual;

22、运行SQLPLUS时不用输入用户名和密码,进入之后使用CONNECT

SQLPLUS /NOLOG

SQL>CONNECT SCOTT/TIGER

23、查看当前会话

userenv() 函数

select userenv('language') from dual 字符集

select userenv('isdba') from dual 是否DBA

select userenv('sessionid') from dual sessionid

select userenv('TERMINAL') from dual 客户端名字

select userenv('INSTANCE') from dual 实例数

SYS_CONTEXT() 函数

select SYS_CONTEXT('USERENV','CURRENT_SCHEMA') from dual; 当前模式

select SYS_CONTEXT('USERENV','CURRENT_SCHEMAID') from dual; 当前模式ID

select SYS_CONTEXT('USERENV','CURRENT_USER') from dual; 当前用户

select SYS_CONTEXT('USERENV','DB_NAME') from dual; 数据库

select SYS_CONTEXT('USERENV','HOST') from dual; 主机

24、删除重复列的方法

(1) DELETE FROM table_name A WHERE ROWID > (

SELECT min(rowid) FROM table_name B

WHERE A.key_values = B.key_values);

(2) create table table2 as select distinct * from table1;

drop table1;

rename table2 to table1;

(3) Delete from mytable where rowid not in(

select max(rowid) from mytable

group by column_name );

(4) delete from mytable t1

where exists (select 'x' from my_table t2

where t2.key_value1 = t1.key_value1

and t2.key_value2 = t1.key_value2

...

and t2.rowid > t1.rowid);

25、ORA-12571: TNS:packet writer failure(包写入程序失败)

(1) 这个错误在客户端遇到过,通常重新连接一下服务器就好了。

服务器重新启动的时候,在client也会遇到该错误。

这个错误你是在server还是client上遇到的?最常用的办法就是加上跟踪,查看一下 跟踪记录,分析分析错误的原因。

网络问题也会出现该错误,比如网络路由没有配置好。

(2) 安装的杀毒软件导致的

(3) 服务器端的IP是否被改动

(4) 最后不行的话,重新创建监听器

26、ORACLE服务不能自动启动的解决办法

把ORACLEHOME/network/ADMIN/sqlnet.ora

文件中的 sqlnet.authentication_service=(nts)

注释掉就可以了

27、不完全的时间点恢复

shutdown immediate

copy 备份文件到需要恢复的目录下

startup mount

recover database until time '2002-12-26 09:00:00'

alter database open resetlogs

自己仔细检查一下,不会发生这样的问题的。

28、oracle如何设置查询超时

select /*+ timeout 30*/ * from veryLargeTable

29、修改字符集

(1)、ALTER DATABAE CHARACTER SET SIMPLIFIED CHINESE_CHINA.ZHS16GBK ;

(2)、update props$ set value$='ZHS16CGB231280'

where name='NLS_CHARACTERSET';

update props$ set value$='ZHS16CGB231280'

where name='NLS_NCHAR_CHARACTERSET';

建议不使用(2)

注意:

(1)、执行ALTER DATABASE CHARACTER SET必须有SYSDBA权限,并且在STARTUP RESTRICT模式下执行

(2)、原字符集必须是目标字符集的一个真子集(就是浪子所说的只能从WE8ISO8859P1转到ZHS16GBK的原因)

(3)、CLOB字段装换可能有问题,建议在转换以前把有CLOB字段的表导出后DROP,转换以后再导回

(4)、该转换不可逆,所以在做这个操作以前建议做数据库全备份

30、修改数据库名字

(1)、启动svrmgrl,以文本方式备份控制文件

oracle>svrmgrl

svrmgrl>connect internal

svrmgrl>alter system backup controlfile to trace

(2)、编辑产生的跟踪文件,在udump目录下

改CREATE CONTROLFILE REUSE DATABASE 'CTC' NORESETLOGS ARCHIVELOG

中的REUSE为SET

然后把create controlfile这段语句拷出

(3)、正常宕库,后启动到nomount下

svrmgrl>shutdown immediate

svrmgrl>startup nomount

(4)、执行create controlfile那段语句

(5)、打开数据库

 svrmgrl>alter database open

 如提示用resetlogs选项则使用

svrmgrl>alter database open resetlogs

(8)、相应修改初始化参数

31、rownum的用法

SELECT a.ksppinm NAME,

b.ksppstdf default_val,

a.ksppdesc DESCRIPTION

FROM x$ksppi a,

x$ksppcv b

WHERE a.indx=b.indx

AND substr(a.ksppinm,1,1)='_'

ORDER BY a.ksppinm

32、如何查看表空间还有多少可以用

(1)、

SELECT upper(f.tablespace_name) 表空间名,

d.Tot_grootte_Mb '表空间大小(M)',

d.Tot_grootte_Mb - f.total_bytes '已使用空间(M)',

round((d.Tot_grootte_Mb - f.total_bytes) / d.Tot_grootte_Mb * 100,2) '使用比',

f.total_bytes '空闲空间(M)',

f.max_bytes '最大块(M)'

FROM

(SELECT tablespace_name,

round(SUM(bytes)/(1024*1024),2) total_bytes,

round(MAX(bytes)/(1024*1024),2) max_bytes

FROM sys.dba_free_space

GROUP BY tablespace_name) f,

(SELECT dd.tablespace_name, round(SUM(dd.bytes)/(1024*1024),2) Tot_grootte_Mb

FROM sys.dba_data_files dd

GROUP BY dd.tablespace_name) d

WHERE d.tablespace_name = f.tablespace_name

ORDER BY 4 DESC

(2)、select tablespace_name,round(sum(bytes)/1024/1024,2) 'M' from dba_free_space

group by tablespace_name

33、使索引无效

ALTER INDEX idx UNUSABLE;

ALTER INDEX idx_acctno DISABLE;(only to a function based index)

34、在SQLPLUS中给指定用户进行 set autotrace on/off

以SCOTT用户为例:

SQL>CONNECT scott/tiger

connected.

SQL>@$ORACLE_HOME/RDBMS/ADMIN/UTLXPLAN.SQL

Table created.

SQL>CONNECT / AS SYSDBA

connected.

SQL>@$ORACLE_HOME/SQLPLUS/ADMIN/PLUSTRCE.SQL

drop role plustrace;

Role dropped.

create role plustrace;

Role created.

.

grant plustrace to dba with admin option;

Grant succeeded.

SQL>GRANT PLUSTRACE TO SCOTT;

Grant succeeded.

SQL>CONNECT SCOTT/TIGER

connected.

SQL>set autotrace on

35、表空间管理和用户管理

--查看表空间和数据文件

select file_name,tablespace_name,autoextensible from dba_data_files;

--数据表空间

CREATE TABLESPACE USER_DATA

LOGGING

DATAFILE 'D:/ORACLE/ORADATA/ORCL/test.DBF' SIZE 50m REUSE ,

'c:/USERS01112.DBF' SIZE 50m REUSE

AUTOEXTEND

ON NEXT 1280K MAXSIZE 16383M EXTENT MANAGEMENT LOCAL

--临时表空间

CREATE TEMPORARY

TABLESPACE USER_DATA_TEMP TEMPFILE 'D:/TEMP0111.DBF'

SIZE 50M REUSE AUTOEXTEND

ON NEXT 1024K MAXSIZE 16383M EXTENT MANAGEMENT LOCAL UNIFORM

SIZE 1024K

--增加数据文件

ALTER TABLESPACE USER_DATA

ADD DATAFILE 'c:/USERS01113.DBF' SIZE 50M;

ALTER TABLESPACE USER_DATA

ADD DATAFILE 'c:/USERS01114.DBF' SIZE 50M

AUTOEXTEND ON

;

--删除表空间

DROP TABLESPACE USER_DATA INCLUDING CONTENTS;

--修改数据文件大小

ALTER DATABASE

DATAFILE 'c:/USERS01113.DBF' RESIZE 40M;

--创建用户、赋予权限

CREATE USER USER_DATA PROFILE DEFAULT IDENTIFIED BY USER_DATA

DEFAULT

TABLESPACE USER_DATA TEMPORARY

TABLESPACE USER_DATA ACCOUNT UNLOCK;

GRANT CONNECT TO USER_DATA;

GRANT RESOURCE TO USER_DATA;

--把表移到另一个表空间

ALTER TABLE TABLENAME MOVE TABLESPACE TABLESPACENAME;

--创建索引

CREATE INDEX INDEXNAME ON TABLENAME(COLUMNNAME);

CREATE INDEX INDEXNAME ON TABLENAME(COLUMNNAME) TABLESPACE TABLESPACENAME;

--重新建立索引

ALTER INDEX INDEXNAME REBUILD TABLESPACE TABLESPACE;

--创建表

CREAE TABLE TABLENAME

(COLUMN1 COLUTYPE DEFAULT(VALUE) NOT NULL)

(COLUMN2 COLUTYPE DEFAULT(VALUE) NOT NULL);

--建表的索引存储分配

CREATE TABLE summit.employee(id NUMBER(7) CONSTRAINT employee_id_pk PRIMARY KEY DEFERRABLE USING INDEX STORAGE(INITIAL 100K NEXT 100K)

TABLESPACE indx,

last_name VARCHAR2(25) CONSTRAINT employee_last_name_nn NOT NULL,

dept_id NUMBER(7))

TABLESPACE data;

--建立主键

ALTER TABLE TABLENAME

ADD CONSTRAINT CONSTRAINTNAME PRIMARY KEY(COLUMN1,COLUMN2)

--使约束无效

ALTER TABLE TABLENAME ENABLE NOVALIDATE CONSTRAINT CONSTRANAME;

ALTER TABLE TABLENAME ENABLE VALIDATE CONSTRAINT CONSTRANAME;

--删除约束

ALTER TABLE TABLENAME DROP CONSTRAINT constraintname;

DROP TABLE TABLENAEM CASCADE CONSTRAINTS;(删除表后将所用的外键删除)

--给表增加列

ALTER TABLE TABLENAME

ADD COLUMN COLUTYPE DEFAULT(VALUE) NOT NULL;

--给列增加缺省值

ALTER TABLE TABLENAME

MODIFY COLUMNNAME DEFAULT(VALUE) NOT NULL;

--给表增加外键

ALTER TABLE TABLENAME

ADD CONSTRAINT CONSTRAINTNAME

FOREIGN KEY(COLUMN) REFERENCES TABLE1NAME(COLUMN1);

相关推荐

MYSQL数据同步(mysql数据同步方式)

java开发工程师在实际的开发经常会需要实现两台不同机器上的MySQL数据库的数据同步,要解决这个问题不难,无非就是mysql数据库的数据同步问题。但要看你是一次性的数据同步需求,还是定时数据同步,亦...

SpringBoot+Redis实现点赞收藏功能+定时同步数据库

由于点赞收藏都是高频率的操作,如果因此频繁地写入数据库会造成数据库压力比较大,因此采用redis来统计点赞收藏浏览量,之后定时一次性写入数据库中,缓解数据库地压力。一.大体思路设计redis中的储存结...

双11订单洪峰:Codis代理层如何扛住Redis集群搞不定的120万QPS?

双11订单洪峰下的技术挑战每年的双11购物节,都是对电商平台技术架构的极限考验。当零点钟声敲响,海量用户瞬间涌入,订单量呈指数级增长,系统需要承受每秒数十万甚至上百万次的请求。作为电商系统的核心组件之...

基于spring boot + MybatisPlus 商城管理系统的Java开源商城系统

前言Mall4j项目致力于为中小企业打造一个完整、易于维护的开源的电商系统,采用现阶段流行技术实现。后台管理系统包含商品管理、订单管理、运费模板、规格管理、会员管理、运营管理、内容管理、统计报表、权限...

商品券后价产品设计方案(显示券后价)

如何设计一套高效、准确且稳定的券后价计算系统,是电商产品设计中的关键挑战之一。本文详细介绍了商品券后价的产品设计方案,从背景目标、功能设计、系统实现逻辑到异常处理机制等多个方面进行了全面阐述。一、背景...

外观(门面)模式-Java实现(java 门面模式)

定义外观模式(FacadePattern),也叫门面模式,原始定义是:为了子系统中的一组接口提供统一的接口。定义一个更高级别的接口,使子系统更易于使用。大大降低应用程序的复杂度,提高了程序的可维护性...

Mall - 用 SpringBoot 实现一个电商系统

目前最为主流的Web开发技术,包括SpringBoot、MyBatis、MongoDB、Kibina、Docker、Vue等,都是开发者十分需要掌握的技术。有没有一个全面而又实际的项目,能把这...

腾讯云国际站:哪些工具能实现可视化运维?

本文由【云老大】TG@yunlaoda360撰写开源工具Grafana:开源的可视化平台,可与Prometheus、Elasticsearch、MySQL等多种数据源集成,将复杂监控数据转化...

系统稳定性保障全流程实战:事前、事中、事后 Java 代码详解

在互联网架构中,系统稳定性是生命线。本文基于“事前预防、事中管控、事后复盘”三阶段模型,结合Java实战代码,深度解析如何构建高可用系统,让你的服务稳如磐石!一、事前:未雨绸缪,筑牢防线1.发...

Java面试题:拆分微服务应该注意哪些地方方,如何拆分?

在拆分微服务时,需要综合考虑业务、技术和组织等多方面因素,以下是关键注意事项及拆分策略的详细说明:一、拆分注意事项1.业务边界清晰化单一职责原则:每个服务应专注于单一业务能力,例如订单服务仅处理订单...

软件性能调优全攻略:从瓶颈定位到工具应用

性能调优是软件测试中的重要环节,旨在提高系统的响应时间、吞吐量、并发能力、资源利用率,并降低系统崩溃或卡顿的风险。通常,性能调优涉及发现性能瓶颈、分析问题根因、优化代码和系统配置等步骤,调优之前需要先...

Docker Compose实战,多容器协同编排的利器,让开发部署更高效!

开篇导读你是否有过这样的经历?启动一个项目,数据库、Redis、Web服务得一个个敲dockerrun?想让别人复现你的开发环境,却得发一堆复杂的启动命令?明明都是容器,为什么不能“一键启动”所...

如何设计Agent的记忆系统(agent记忆方法)

最近看了一张画Agent记忆分类的图我觉得分类分的还可以,但是太浅了,于是就着它的逻辑,仔细得写了一下在不同的记忆层,该如何设计和选型先从流程,作用,实力和持续时间的这4个维度来解释一下这几种记忆:1...

不了解业务和技术术语怎么做好产品和项目?

基础技术术语术语分类解释API开发技术应用程序接口,不同系统间数据交互的协议(如支付接口、地图接口)。SDK开发工具软件开发工具包,包含API、文档和示例代码,帮助快速接入服务。RESTfulAPI...

Docker 架构详解与核心概念实战图解:一文读懂容器的前世今生

不懂Docker架构,你只是“用容器的人”;理解了它的底层逻辑,才能成为真正的高手!在学习Docker之前,很多同学可能会陷入一个误区:“反正我用dockerrun就能跑起服务,架构这种...

取消回复欢迎 发表评论: