1. 程式人生 > >mysql 建立索引後,查詢速度沒有提升

mysql 建立索引後,查詢速度沒有提升

直接上結論:

mql查詢語句的where條件欄位和select查詢欄位需要在同一個索引中。

引申:

多表查詢時,where條件涉及的大表欄位、select中的大表欄位和left join的大表欄位要在同一個索引中。


首先宣告,本人才學疏漏,本文即興寫作,不一定對,更不一定深。

我們專案使用mysql作為資料庫,在單表達到百萬級別以後,經常發現大表查詢速度難以忍受,達到半分鐘到5分鐘左右。嘗試在大表添加了索引,查詢速度依然沒有提升。

後測試發現,索引新增和查詢配合才能出效果。

表結構t1:

id, name, time

sql1:

select * from t1 where time > t1 and time < t2;

無索引時,查詢速度在幾分鐘。

新增time欄位索引,查詢時間依然是幾分鐘。

新增time索引,sql1程式設計sql2:

select time from t1 where time > t1 and time < t2;

執行sql2,查詢時間是秒級別。

相關推薦

mysql 建立索引查詢速度沒有提升

直接上結論:mql查詢語句的where條件欄位和select查詢欄位需要在同一個索引中。引申:多表查詢時,where條件涉及的大表欄位、select中的大表欄位和left join的大表欄位要在同一個索引中。首先宣告,本人才學疏漏,本文即興寫作,不一定對,更不一定深。我們專案

建立索引速度變快原因?以及索引失效總結

總結自韓順平老師教學 速度變快是因為搜尋引擎的選擇,一般是Btree,二叉樹的話是logn的時間複雜度; 索引失效的總結。以下是具體描述。 原理示意圖:   .   索引使用的注意事項 索引的代價: 佔用磁碟空間 對dml

MySQL建立索引觸發器

沖突 after trigge index 程序 esc triggers 結束 rop 創建索引:ALTER TABLE <表名> ADD INDEX (<字段>);>ALTER TABLE `table_name` ADD PRIMARY

MySQL 建立索引的幾大原則 和 使用索引優化查詢

MySQL 建立索引的幾大原則 和 使用索引優化查詢 文章目錄 1、建立索引的幾大原則 1.1、最左字首匹配原則 1.2、=和in可以亂序 1.3、選擇 `區分度`高的列作為索引 1.4、索引列不能參與計算,保持列“乾淨”

mysql】已經建立修改某列的預設值

簡述 比如我這裡已經有一個表了,teacher。 新增一個default值 這裡假設設定telephone的預設值為00000000 mysql> alter table teacher alter column telephone set defa

Mysql的ENUM型別查詢索引

2010-10-12 19:48 對ENUM列舉型別直接SELECT的話,查到的都是列舉值,想要查到索引值的話,只需要”+0“ mysql> SELECT enum_col+0 FROM tbl_name;

mysql千萬級資料量根據(索引)優化查詢速度

轉自:http://blog.csdn.net/qq_33556185/article/details/52192551 (一)索引的作用 索引通俗來講就相當於書的目錄,當我們根據條件查詢的時候,沒有索引,便需要全表掃描,資料量少還可以,一旦資料量超過百萬甚至千萬,一條查詢

五、ActiveMQ添加了mysql的持久化發了訊息但是MSGS表中沒有記錄.

1.持久化以後 activemq資料庫 會建立3張表<bean id="derby-ds" class="org.apache.commons.dbcp2.BasicDataSource" de

Oracle模糊查詢之(4.採用全文索引解決模糊查詢給出具體步驟)採用全文索引解決模糊查詢速度慢的問題[主文]

採用全文索引解決模糊查詢速度慢的問題 上一篇 /下一篇  2009-09-22 20:58:34 眾所周知,使用 like 進行模糊查詢速度極差,包括 like 'AAA%' ,like '%AAA',like '%AAA%',like '%A%A%'以及採用“_”

MySql 建立、刪除、查詢索引

 使用索引:索引是加速查詢的主要手段,特別對於涉及多個表的查詢更是如此。索引是快速定位資料的技術 建立索引:                     LTER TABLE用來建立普通索引、UNIQUE索引或PRIMARY KEY索引。                  

create table new_table as select ...from old_table ... 建立依附於表的約束、鍵值、索引都不存在

emp 表 列名 型別 可為空 預設值 EMPNO NUMBER(4) ENAME VARCHAR2(10) Y 'YJG' JOB VARCHAR2(9) Y MGR NUMBER(4) Y HIREDAT

MySQL 千萬 級資料量根據(索引)優化 查詢 速度

一、索引的作用 索引通俗來講就相當於書的目錄,當我們根據條件查詢的時候,沒有索引,便需要全表掃描,資料量少還可以,一旦資料量超

mysql全文索引之模糊查詢

http mysql5 var innodb 沒有 null into user 測試數據 舊版的MySQL的全文索引只能用在MyISAM表格的char、varchar和text的字段上。 不過新版的MySQL5.6.24上InnoDB引擎也加入了全文索引,所以具體信息大家

關於mysql建立索引 復合索引 索引類型

uniq 復合索引 最優 強烈 pri 查詢 abc pac 數據存儲 這兩天有個非常強烈的感覺就是自己在一些特別的情況下還是hold不住,腦子easy放空或者說一下子不知道怎麽去分析問題了,比方,問“hash和btree索引的差別”,這非常難嗎。僅僅要

mysql設置密碼查詢幫助密碼找回

affect you alt update ast err 亂碼 mysql優化 extra 進入mysql中查詢幫助:如進入mysql,授權:all privileges:所有權限on *.*:在所有庫上的所有表to 那個用戶@那個主機設置密碼:#mysqladmin

mysql建立索引的幾大原則

工作 order by 場景 ron 可能 ike 遇到 eat 範圍 (轉)僅供自己學習,特此記錄 1.選擇唯一性索引 唯一性索引的值是唯一的,可以更快速的通過該索引來確定某條記錄。例如,學生表中學號是具有唯一性的字段。為該字段建立唯一性索引可以很快的確定某個學生的信息。

window下mysql建立新使用者修改密碼以及授權——低版本

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' 原文:http://blog.sina.com.cn/s/blog_4fcd1ea30100z0fe.ht

MySql安裝完成Navicat連線不上的問題

Navicat連線mysql8.0.1版本出現1251--Client does not support authentication protocol requested by server的解決 好不容易安裝好mysql,但又出現了mysql客戶端版本太低的問題。根據參考的這篇教程,完美的解決了該問題。

mysql建立儲存過程模擬插入200萬用戶

公司需要建立模擬使用者測試大資料,百度建立儲存過程模擬插入資料下面是sql程式碼 CREATE PROCEDURE test()  begin  declare var int; declare a int; declare mobile bigint; SET var

mysql建立索引和檢視

索引建立: 1.選表,設計表,選擇欄位 2.建檢視: 新建檢視,寫檢視程式碼 select `parkingmessage`.`id` AS `id`,`parkingmessage`.`version` AS `version`,`parkingmessage`.`sna