日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

mysql json坑_使用mysql innodb 使用5.7的json类型遇到的坑和解决办法

發布時間:2023/12/15 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql json坑_使用mysql innodb 使用5.7的json类型遇到的坑和解决办法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

----------------------------------------------

#查詢JSON的某個字段

select data -> ‘$.Host‘ from temp

#創建虛擬列

ALTER TABLE temp ADD host varchar(128) GENERATED ALWAYS AS (json_extract(data,‘$.Host‘)) VIRTUAL;

#給虛擬列創建索引

ALTER TABLE temp ADD INDEX index_temp_host ( host)

#用建立的第二索引列解決select count 的效率問題

select count(0) from temp where host>=0 ;

-------------------------------------------------------

EntityFramework不能使用mysql5.7的解決辦法。【MySQL - Entity : The value for column ‘IsPrimaryKey‘ in table ‘TableDetails‘ is DBNull】

(目前測試:EntityFramework不能使用mysql5.7中的Json類型,Ado.net可以使用json類型)

在mysql執行一段代碼就可以用entityframework了

use adventureworks;

set global optimizer_switch=‘derived_merge=off‘;

set optimizer_switch=‘derived_merge=off‘;

select @@optimizer_switch;

select @@GLOBAL.optimizer_switch;

public static DataTable ExecuteDataTable(string sql, params MySqlParameter[] parameters)

{

MySqlConnection con = new MySqlConnection("server=localhost;user id=root;password=aaa_123;port=4407;database=testjson");

con.Open();

MySqlCommand cmd = new MySqlCommand(sql, con);

foreach (MySqlParameter parameter in parameters)

{

cmd.Parameters.Add(parameter);

}

DataSet dataset = new DataSet();//dataset放執行后的數據集合

MySqlDataAdapter adapter = new MySqlDataAdapter(cmd);

adapter.Fill(dataset);

cmd.Dispose();

con.Close();

return dataset.Tables[0];

}

-----------------------------------------------------

關于mysql?innodb count(*)速度慢的解決辦法

innodb引擎在統計方面和myisam是不同的,Myisam內置了一個計數器,所以在使用 select count(*) from table 的時候,直接可以從計數器中取出數據。而innodb必須全表掃描一次方能得到總的數量。要初步解決這個問題,需要做不同于myisam的一些工作:

1、使用第二索引(一般不使用主鍵索引),并且添加where條件,如:

select count(*) from product where comp_id>=0 ;

show index from product ;

id primary key

comp_id index

2、如果只需要粗略統計的話也可使用

show status from product; 來得到大約值

這種方法可在數據分頁中使用!

3、使用外部計數器,比如建立一個觸發器來計數或者在程序上使用緩存方式定時計數,缺陷是這些方法會額外消耗一些資源!

原文:http://www.cnblogs.com/haoliansheng/p/5982144.html

總結

以上是生活随笔為你收集整理的mysql json坑_使用mysql innodb 使用5.7的json类型遇到的坑和解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。