研究怎么最快操作数据insertupdatedelete

2025-04-06 17:00:53
推荐回答(2个)
回答1:

Oracle的话,尝试使用FlashbackQuery来处理下面是一个查询的例子:SQL>CREATETABLEtest_fb_table(2IDint,3VALVARCHAR2(10)4);Tablecreated.SQL>INSERTINTOtest_fb_tableVALUES(1,'TEST');1rowcreated.SQL>commit;Commitcomplete.假如数据被错误的删除/更新需要检索某个时间点上,表原有的数据。SQL>SELECTTO_CHAR(sysdate,'yyyy-mm-ddhh24:mi:ss')FROMdual;TO_CHAR(SYSDATE,'YYYY-MM-DDHH24:MI:SS'--------------------------------------2010-11-0713:01:37这里删除掉数据。SQL>deletefromtest_fb_table;1rowdeleted.SQL>commit;Commitcomplete.确认数据已经被删除。SQL>select*fromtest_fb_table;norowsselected方法一:这里检索出,指定时间点上,指定表的数据情况。SQL>select*fromtest_fb_table2ASOFTIMESTAMPTO_TIMESTAMP('2010-11-0713:01:37',3'yyyy-mm-ddhh24:mi:ss');IDVAL------------------------------1TEST方法二:使用dbms_flashback下面的方法来切换。SQL>connsystemEnterpassword:Connected.SQL>select*fromhr.test_fb_table;norowsselectedSQL>executedbms_flashback.enable_at_time(->TO_TIMESTAMP('2010-11-0713:01:37','yyyy-mm-ddhh24:mi:ss'));PL/SQLproceduresuccessfullycompleted.SQL>select*fromhr.test_fb_table;IDVAL------------------------------1TESTSQL>executedbms_flashback.disable;PL/SQLproceduresuccessfullycompleted.SQL>select*fromhr.test_fb_table;norowsselected

回答2:

顺序 1.insert 2.delete 3.update 因为delete和update要涉及到全表扫描, update是最慢的,如果数据很多的时候最好使用delete+insert,而非update.即使表有索引,update也是最慢的!