有沒有mysql資料庫高手給優化一下這個查詢

2022-08-10 19:00:20 字數 3234 閱讀 7333

1樓:匿名使用者

你至少也要把原語句寫清楚啊,連個空格都不給一個~~~一看你就不專業啊~~不過這種3select語句是很常用的查詢方式,有很多人看你的查詢就是直接看你多少個select這個語句應該是沒得什麼可以優化的地方。很常用的。不知道你想怎麼個優化法?

2樓:

你能不能先把空格加加好啊,這樣擠在一堆怎麼看?

mysql資料庫有100萬+資料,查詢起來很慢了,如何優化

3樓:

你好,你可以根據條件去新增索引,例如:

一、所有mysql索引列型別都可以被索引,對來相關類使用索引可以提高select查詢效能,根據mysql索引數,可以是最大索引與最小索引,每種儲存引擎對每個表的至少支援16的索引。總索引長度為256位元組。

mysim和innodb儲存引擎的表預設建立索引都是btree索引,目前mysql還不支援函式索引,但支援前緣索引,對欄位前n個字元建立索引

二、mysql建立索引語法

create [unioun|fulltext|spatial] index indexname[using indextype] on tablename( tablenamecol)

index_col_name:

col_name[ (length)][asc |desc]

如果你建立索引時搞錯了,需要修改mysql索引我們可以用alert來修改索引,語法與create index建立索引差不多,我們就不說了,可以檢視相關手冊。

下面我們來看一個關於mysql建立索引例項教程。

mysql>create index cityname on city(city(2));

query ok,600 rows affected (0.26 sec)

records :600 duplicates:0 warings 0:

我們現在來以city為條件進行查詢,如下面。

->explain select * from city where city ='www.111cn.net' g

id:1

......

possible_keys:cityname

key:cityname

好了,現在我們來看看mysql刪除索引等例項

drop indexname on tablename

例項,我現在要刪除剛才建立city索引

>drop index cityname on city;

query ok, .....

不過通常對百萬級資料的查詢或者其他操作,都改換其他的大型的資料庫了,希望能幫到你,望採納。

跪求高手給出mysql優化方案,7萬多條查詢很慢,查詢**如下,感激不盡 200

mysql資料庫表太大查詢慢優化的幾種方法

4樓:張伊笙

優化方案:

主從同步+讀寫分離:

這個表在有裝置條件的情況下,讀寫分離,這樣能減少很多壓力,而且資料穩定性也能提高

縱向分表:

根據原則,每個表最多不要超過5個索引,縱向拆分欄位,將部分欄位拆到一個新表

通常我們按以下原則進行垂直拆分:(先區分這個表中的冷熱資料欄位)

把不常用的欄位單獨放在一張表;

把text,blob等大欄位拆分出來放在附表中;

經常組合查詢的列放在一張表中;

缺點是:很多邏輯需要重寫,帶來很大的工作量。

利用表分割槽:

這個是推薦的一個解決方案,不會帶來重寫邏輯等,可以根據時間來進行表分割槽,相當於在同一個磁碟上,表的資料存在不同的資料夾內,能夠極大的提高查詢速度。

橫向分表:

1000w條資料不少的,會帶來一些運維壓力,備份的時候,單表備份所需時間會很長,所以可以根據伺服器硬體條件進行水平分表,每個表有多少資料為準。

如何提高上百萬級記錄mysql資料庫查詢速度

5樓:愛可生雲資料庫

先安裝 apache spark,查詢資料庫的速度可以提升10倍。

在已有的 mysql 伺服器之上使用 apache spark (無需將資料匯出到 spark 或者 hadoop 平臺上),這樣至少可以提升 10 倍的查詢效能。使用多個 mysql 伺服器(複製或者 percona xtradb cluster)可以讓我們在某些查詢上得到額外的效能提升。你也可以使用 spark 的快取功能來快取整個 mysql 查詢結果表。

思路很簡單:spark 可以通過 jdbc 讀取 mysql 上的資料,也可以執行 sql 查詢,因此我們可以直接連線到 mysql 並執行查詢。那麼為什麼速度會快呢?

對一些需要執行很長時間的查詢(如報表或者bi),由於 spark 是一個大規模並行系統,因此查詢會非常的快。mysql 只能為每一個查詢分配一個 cpu 核來處理,而 spark 可以使用所有叢集節點的所有核。在下面的例子中,我們會在 spark 中執行 mysql 查詢,這個查詢速度比直接在 mysql 上執行速度要快 5 到 10 倍。

另外,spark 可以增加「叢集」級別的並行機制,在使用 mysql 複製或者 percona xtradb cluster 的情況下,spark 可以把查詢變成一組更小的查詢(有點像使用了分割槽表時可以在每個分割槽都執行一個查詢),然後在多個 percona xtradb cluster 節點的多個從伺服器上並行的執行這些小查詢。最後它會使用map/reduce 方式將每個節點返回的結果聚合在一起形成完整的結果。

怎麼進行mysql資料庫優化?

6樓:

主要從以下角度思考優化方向:1,mysql配置優化主要對查詢快取,mysql資料庫連線時長,開啟慢查詢日誌(開啟後還要分析sql)等方面進行優化2. myslq語句優化3.

mysql索引優化主要是需要注意索引數量和索引失效情況,重複索引4. mysql引擎優化innodb引擎注重於事務,能保證資料一致性myisam引擎可以進行全文檢索,但不是事務安全當初在黑馬程式設計師學過,還用例項進行優化學習。

7樓:it知識分享與攝影日記

所謂的優化,就是優化資料庫結構。讓資料流通暢快,結構組織架構清晰明朗,方便讀取資料和儲存,出錯時能夠及時找到原因等等

另外也要考慮資料庫的安全效能,以及實時清理不需要的資料,節約空間資源,加快訪問速度。

整理優化訪問資料帳號,管理資料庫的安全性和訪問性。

做到資料結構調理清晰,及時判斷故障和資料策略等等。

為什麼mysql資料庫安,mysql資料庫裝不上什麼問題?

mysql5.7.21安裝 mysql資料庫裝不上什麼問題?肯定是上次沒有完全解除安裝 先把你裝的解除安裝了 然後去 documents and settings裡找有關和mysql有關的檔案然後全部刪掉 在安裝就行了 在什麼系統上安裝?出了什麼錯誤資訊?錯誤資訊貼上出來 為什麼我的mysql資料庫...

mysql修改欄位內容,mysql資料庫中sql修改欄位型別要怎麼做?

update banji set num 要改的值 update 表名稱 set 列名稱 新值 where 列名稱 某值 如果要改全部,就忽略條件.mysql資料庫中sql修改欄位型別要怎麼做?方法如下 復 修改一個字制 段的型別 alter table user modify new1 varch...

phpmyadmin的mysql資料庫中主鍵索引唯一各

主鍵 是唯一標示當前表裡的那一列,用主鍵可以代替表裡一條實體的內容,如 你有一個名字,有你的住址,號碼,籍貫,學位,政治面貌,等屬性,但唯一能夠標示你的還是你的身份證號,因為別人有可能有跟你同樣的名字,或者同樣的住址,或者同樣的的學位。但身份證是唯一的。通過身份證,我完全知道你本人。索引 就相當於你...