1.首先建立一張表
create table five_million_test
( name varchar2(30
),school varchar2(30));
2.插入資料declare
begin
for i in 1.
.5000000 loop
insert into five_million_test values
('姓名'
||i ,
'學校'
||i)
; end loop;
commit;
end;
3.查詢資料select * from five_million_test where name=
'姓名3500000'
;
4.新增單一索引後再查詢
create index ind_five_million_test on five_million_test
(name)
1.建立之前進行查詢
select * from five_million_test where name=
'姓名3500000' and school=
'學校3500000'
;
2.建立復合索引並查詢
create index ind_five_million_test2 on five_million_test
(name,school)
不管是單一索引還是符合索引,速度都有著非常顯著的提公升.不僅如此,在使用時,cost(cpu呼叫次數,消耗)和cardinality(影響行數,基數)都會有極為明顯的降低,顯著提公升查詢效率
單一查詢時,建立索引前後的消耗對比
復合查詢時,建立索引前後的消耗對比
1.主鍵約束自帶主鍵索引,唯一約束自帶唯一索引
2.索引是基於平衡二叉樹的,查詢效率提高了,但增刪改的效率有可能會降低刪除索引
drop index ind_five_million_test
查詢表的索引select * from user_indexes where table_name=
'five_million_test'
查詢表的索引列select * from user_ind_columns where table_name=
'five_million_test'
百萬級資料多表同步
只說思路!只說思路!只說思路!應用場景 百萬級資料多表同步 實現思路 我用的是redis的list型別,我當初的應用場景是因為平台開始設計時候並沒有打算把所有流水記錄放在乙個表中,而是一種幣種,乙個流水表。像這種 假如說我想對所有幣種進行乙個查詢 條件搜尋 修改 分頁 該怎麼實現?觸發器?unin ...
關於資料測試
以後不要那麼二了,過了樣例就迫不及待的交了,雖然有時候能過,但是還是容易有特殊資料使你wa,雖然有時候oj的測試資料有點水,但是你卻不能水過去啊!以後 針對題目條件自己造出邊值資料 1.含0 1,負數等之類的特殊資料 2.剛好滿足條件的資料,比如說它讓你處理後輸出滿足條件的資料,你直接輸入滿足條件看...
mysql生成百萬級數量測試資料
首先我的生成table的 如下 set foreign key checks 0 table structure for user drop table ifexists user create table user username bigint 255 not null auto increme...