mysql 查詢重複的資料的SQL優化方案

2022-10-06 01:39:13 字數 905 閱讀 6192

在mysql中查詢不區分大小寫重複的資料,往往會用到子查詢,並在子查詢中使用upper函式來將條件轉化為大寫。如:

複製** **如下:

select * from staticcatalogue where upper(source) www.cppcns.comin (select upper(source) from staticcatalogue group by upper(source) h**ing count(upper(source))>1) order by upper(source) desc;

這條語句的執行效率是非常低的,特別是source欄位沒有加索引。尤其是最忌諱的在查詢條件中使用了函式,這將極www.cppcns.com大的降低查詢速度,如程式設計客棧果查詢十萬條資料以內的10分鐘內還能獲取到資料,如果是查詢幾十萬條的話,會直接把伺服器跑死的,此時可以通過乙個臨時表,並且加索引,再查詢。這樣可以提高很多的速度

複製** **如下:

create table staticcatalogue_tmp select upper(source) as source from staticcatalogue group by upper(source) h**ing count(upper(source))>1;

alter table staticcatalogue_tmp add index tx_1 (source);

select s.* from staticcatalogue s where upper(s.source) in (select st.source from staticcatalogue_tmp st) order by upivgglper(s.source) desc ;

本文標題: mysql 查詢重複的資料的sql優化方案

本文位址: /shujuku/mysql/119714.html

mysql資料庫 查詢模型 mysql之SQL模型

sql模型 sql mode 通過定義某些規定,限制使用者行為,並定義對應的處理機制。常見的模型 ansi 寬鬆模式,對插入資料進行校驗,如果不符合定義型別或長度,對資料型別調整或截斷儲存,報warning警告。traditional 嚴格模式,當向mysql資料庫插入資料時,進行資料的嚴格校驗,保...

mysql 多表查詢資料重複的問題

廢話不多說直接貼sql語句 select moments.id as id,count endorse.id as endorsecount,count reply.id as replycount from jq circle moments moments left join jq circle...

mysql 查詢多列不重複的資料

語法 select distinct 列名稱 from 表名稱 如果要查詢某列完全不同的值,可以這樣用distinct。如果是多列呢?這時只用distinct明顯不能實現。比如 要查詢firstname和address完全不同的資料 想要查詢如下結果的資料 使用多列分組查詢則可以實現該查詢要求 se...