mysql不支援 MySQL不支援的特性

2021-10-18 01:25:24 字數 991 閱讀 7632

mysql

1、不支援物化檢視。

2、不支援位圖索引。

3、不支援並行查詢。

4、不支援雜湊關聯,mysql的所有關聯都是巢狀迴圈關聯。不過,可以通過建立乙個雜湊索引來曲線實現。

5、不允許對同一表同時進行查詢和更新。

報錯: update tb1 as outer_tb1 set cnt = (select count(*) from tb1 as inner_tb1 where inner_tb1.type= outer_tb1.type);

生成表繞過限制: update tb1 inner join (select type,count(*) as cnt from tb1 group by type) as der using(type) set tb1.cnt = der.cnt;

分割槽: create table sales(   order_date datetime not null )engine = innodb

partition by range(year(order_date))(

partition p_2010 values less than (2010),

partition p_2011 values less than (2011),

partition p_2012 values less than (2012),

partition p_catchall values less maxvalue );

null值會使分割槽過濾無效 例如,如果所有order_date 為null 或者是乙個非法值的時候,記錄都會被存放在第乙個分割槽。

where order_date between '2010-01-01' and '2010-12-02',mysql會檢查兩個分割槽,因為第乙個分割槽year()函式在接收非法值的時候會返回null值。可以使用partition p_nulls values less than (0) 來建立乙個"無用"的第乙個分割槽。這樣即使需要檢測第乙個分割槽,代價也非常小。

mysql不支援top 支援limit

今天偶爾發現mysql居然不支援top語句,之前用hibernate記得用過top語句。原因是 mysql的確是不支援top語句,之前用的是hql語句,是hibernate幫你翻譯成mysql支援的語句的。通常hibernate的用法 select top 5 id,name,password fr...

MySQL不支援動態表名

今天寫乙個資料遷移的儲存過程,用到了動態表名,發現mysql不支援直接使用變數做表名。然後就用下面的方式來做了。drop procedure if exists p transfer data delimiter create procedure p transfer data begin decl...

mysql 不支援多例項 mysql多例項

msyql多例項常見配置方案 1 多配置檔案部署方案 即本文主要講解的方案,通過配置多個配置檔案及多個啟動程式來實現的方案,這是比較推薦的方法 2 單一配置檔案部署方案 mysql配置檔案樣例 msyql 手冊裡提到的方法 mysql multi mysql usr bin mysql safa m...