當我用mysql-5.7.17,我發現了什麼。 我使用Innodb和charst:utf8。MySQL的前綴索引和覆蓋指數(全索引)
覆蓋索引表模式:
CREATE TABLE test_table ( c_pk varchar(20) NOT NULL DEFAULT '', c_default varchar(32) DEFAULT NULL, c_notnull varchar(20) NOT NULL, PRIMARY KEY (c_pk), KEY IDX_test_table (c_notnull) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
前綴索引表模式:
CREATE TABLE ntable ( c_pk varchar(20) NOT NULL DEFAULT '', c_default varchar(32) DEFAULT NULL, c_notnull varchar(20) NOT NULL, PRIMARY KEY (c_pk(10)), KEY IDX_test_table (c_notnull(10)) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
並插入相同數據於ntable和TEST_TABLE (數據具有數目和多字節字符: EX - 123,한글) 當我執行select查詢,如:SELECT * FROM ntable WHERE c_notnull LIKE「윤선중윤선중 선중윤선중윤선중윤선중%';
表結果的差異。 選擇數據相同,但順序不同。
原來MySQL的前綴索引和覆蓋指數(全指數)的結果是不同的?
謝謝!我修復它使用ORDER BY c_notnull,c_pk。 – CancerYoon