1. 程式人生 > >mysql索引 mysql中select 查詢條件隨談

mysql索引 mysql中select 查詢條件隨談

                                            mysql索引

使用索引—編寫程式碼時候儘可能利用索引,不過非常小的表除外。因為表小,忽略表中索引能使表的讀取更為高效。

什麼是索引

資料庫中的索引是某個表中一列或多列值的集合和相應的指向表中物理標識這些值的資料頁的邏輯指標清單。

建立索引語法:

   create [索引型別] index 索引名稱

on 表名(列名)

[with fill factor = 填充因子值0-100]

go

例子:

create index a on table1(id,name);

使用sql:

select * from table1(index = a) where id=1 and name=“你好”;

注意:

select * from table where a = 1 and b=2 and c=3;

如果有索引index(a,b,c),那麼where 子句中欄位的順序應和索引中欄位順序一致。

1,索引型別

關係型資料庫中最常用的一種索引是二叉樹(b-tree)索引。

唯一索引與非唯一索引——唯一索引是指一張表中允許有一個值的索引。慎用唯一索引,因為對唯一索引欄位的插入和更新需要掃描整個索引空間。唯一索引提高效能一般用於主鍵。

複合索引--多欄位索引,但是單欄位索引比複合字段索引更為高效。

索引資料型別--最好使用整數

                                      mysql中select 查詢條件

1,in 與 exists集合運算子--in 運算子用於測試一系列文字值中的某個值

    select * from table where id in (1,2,3,4);

Exists用於檢查值的動態集合,例如由子查詢生成的集合

select * from table where exists (select id from table2);

2,having和where用法

  having子句會篩選聚合組合,並在資料庫所有i/o活動完成後進行帥選,

   使用where的效率更高話,就不要使用having

select id,name,avg(score) from table group by name having id > 5 and avg(score) >10;

將having子句中的id>5限制條件轉移到where 子句中修改後如下:

select id,name,avg(score) from table where id>5 group by name having avg(score) > 10;

這樣的話效率就執行更高

因為having在id進行帥選的時候不會限制i/o活動,

3,連線

內部連線—內部連結是兩個表的交集,交集是最高效的連線型別

select P.name as publisher , E.id from table1 P join table2 E using (id);

腦補下: using 可以簡化  on 的語法

  table1 inner join table2 on table1.id = table2.id     類似於  table1 inner join table2 using(id)

外部連線--與內部連線相反,返回的是另外一個表所不包含的。

select P.name as publishber , E.id from table1 P left outer join table2 E using(id);

交叉連線--一種笛卡爾乘積,將一個表中的所有記錄連線到另一個表中的所有記錄。cross join

相關推薦

mysql索引 mysqlselect 查詢條件

                                            mysql索引 使用索引—編寫程式碼時候儘可能利用索引,不過非常小的表除外。因為表小,忽略表中索引能使表的讀取更為高效。 什麼是索引 資料庫中的索引是某個表中一列或多列值的集合和相應的指

MySQL關於查詢條件的字串空格問題

假設當前mysql資料庫中有個表:sysuser 有個欄位是:sysUseName 欄位中有條記錄的內容是:robin 請看下面這兩個SQL語句: SELECT * from sysuser s where s.sysUseName = 'robin' SELECT * f

MySQL索引原理及慢查詢優化(轉)

範圍 很難 等於 right 事件 原理 插入 jpg 個人網站 轉自:美團點評技術團隊http://tech.meituan.com/mysql-index.html MySQL憑借著出色的性能、低廉的成本、豐富的資源,已經成為絕大多數互聯網公司的首選關系型數據庫。雖然性

MySQL索引原理及慢查詢優化-zz

`` 原理 並不是 計劃 ora 實的 birt 總計 war https://tech.meituan.com/mysql-index.html MySQL憑借著出色的性能、低廉的成本、豐富的資源,已經成為絕大多數互聯網公司的首選關系型數據庫。雖然性能出色,但所謂“好馬配

mysql:索引原理與慢查詢優化

一個 mark index out 般的 test output 都是 records 一 介紹 二 索引的原理 三 索引的數據結構 三 MySQL索引管理 四 測試索引 五 正確使用索引 六 查詢優化神器-explain 七 慢查詢優化的基本步驟 八 慢日誌管理 九 參

mysql索引及多表查詢

技術分享 類型 主表 nbsp prim group 索引 div AR 註意where,group by ,having,order by, limit 等的順序。 主表是被綁定的表,子表是添加了外鍵了的表,註意,在創建表的時候可以添加外鍵,也可以創建完了以後

MySQL - - 索引原理與慢查詢優化

詳解 limit 性能 取出 平衡 獲取數據 目的 官方文檔 百度 目錄 索引介紹 索引方法 索引類型 聚合索引和輔助索引 測試索引 正確使用索引 組合索引 註意事項 查詢計劃 慢日誌查詢 大數據量分頁優化 EXPLAIN 詳解 1, 索引介紹 需求: 一般的應用系

Mysql 索引 與 多表查詢效能優化

最近做專案需要用到Luence Whoosh,要定時從資料庫中索引出資料來供檢索,但是在索引中設計多表查詢,速度較慢,因為強迫症,想要做效能優化,因此把Mysql的核心又翻出來研究一遍。 關於MySQL索引的好處,如果正確合理設計並且使用索引的MySQL是一輛蘭博基尼的話,那麼

MySQL】4、Select查詢語句

4.Select查詢語句 4.1、select語句 <?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // 建立連線 $conn

如何在mysql的表按設定條件更新資料(update, id)

如何在mysql的表中按設定條件更新資料(update, id) 語句為:update health set website='spring_rain_doctor' where id>1013; 其中: health為所在的表; website為需要更新的欄位; 'spring_

MySQL索引原理及慢查詢優化--美團分享

MySQL索引原理及慢查詢優化 http://tech.meituan.com/mysql-index.html MySQL憑藉著出色的效能、低廉的成本、豐富的資源,已經成為絕大多數網際網路公司的首選關係型資料庫。雖然效能出色,但所謂“好馬配好鞍”,如何能夠更好的使用

MySql索引原理及慢查詢優化

MySQL憑藉著出色的效能、低廉的成本、豐富的資源,已經成為絕大多數網際網路公司的首選關係型資料庫。雖然效能出色,但所謂“好馬配好鞍”, 如何能夠更好的使用它,已經成為開發工程師的必修課,我們經常會從職位描述上看到諸如“精通MySQL”、“SQL語句優化”、“瞭解資料庫原

MySQL——索引的使用對查詢、插入速度的影響

一.什麼是索引? 1.索引:索引是對資料庫中一列或者多列的值進行排序的一種資料結構。 2.索引的作用:索引的作用是為了提高查詢的速度。 3.幾個特點: ①MySQL中,主鍵和唯一約束自帶索引; ②在查詢時,只有使用到有索引的列,才能提高查詢速度; ③索

MySQL索引原理及慢查詢優化--美團分享轉載

MySQL憑藉著出色的效能、低廉的成本、豐富的資源,已經成為絕大多數網際網路公司的首選關係型資料庫。雖然效能出色,但所謂“好馬配好鞍”,如何能夠更好的使用它,已經成為開發工程師的必修課,我們經常會從職位描述上看到諸如“精通MySQL”、“SQL語句優化”、“瞭解資料庫原理”等

MySQL索引原理及慢查詢優化(轉載)

MySQL憑藉著出色的效能、低廉的成本、豐富的資源,已經成為絕大多數網際網路公司的首選關係型資料庫。雖然效能出色,但所謂“好馬配好鞍”,如何能夠更好的使用它,已經成為開發工程師的必修課,我們經常會從職位描述上看到諸如“精通MySQL”、“SQL語句優化”、“瞭解

MySQL索引原理及慢查詢優化(重要)

該文是我看過mysql索引和優化相關知識,講解最全面的一篇博文(是美團內部的一篇技術博文),現轉載分享給大家,希望大家能從中有所收穫! MySQL憑藉著出色的效能、低廉的成本、豐富的資源,已經成為絕大多數網際網路公司的首選關係型資料庫。雖然效能出色,但所謂“好馬配好鞍”,

MySQL索引原理及慢查詢優化(轉自:美團tech)

輔助 nor bundle like 案例 應對 異常 線下 重要 背景 MySQL憑借著出色的性能、低廉的成本、豐富的資源,已經成為絕大多數互聯網公司的首選關系型數據庫。雖然性能出色,但所謂“好馬配好鞍”,如何能夠更好的使用它,已經成為開發工程師的必修課,我們經常會從職位

MySQL索引原理及慢查詢優化,瞭解一下?

MySQL憑藉著出色的效能、低廉的成本、豐富的資源,已經成為絕大多數網際網路公司的首選關係型資料庫。 雖然效能出色,但所謂“好馬

MongoDB關於查詢條件包括集合字段的查詢

idt rtti system ons div match nts mongo tro 要查詢的數據結構例如以下: 以查詢當中的versionLimitList字段為例 MongoOperations工具類查詢相關語句 <pre name="code" cla

datagridreoload提交時如何批量提交表單查詢條件

object orm arc 一個 表單 arch 復雜 查詢 直接 看標題描述有點復雜,看下圖: 直接將手工添加的一個個字段直接用一句代碼完成。 $(‘#dg_sub‘).datagrid("reload",$(‘#searchForm‘).serializeOb