EXPLAIN SELECT * FROM book4 WHERE book_id=1001 AND book_name='some'; 查询字段中指定了2个字段都包含在定义多列索引中,最重要的是其中有定义多列索引中的首字段book_id,所以这条查询语句一定会使用多列索引,
而下面的这个例子
EXPLAIN SELECT * FROM book4 WHERE info='book' AND book_name='some'; info 和 book_name 虽然都在定义的多列索引里,但它们都不是多列索引的首字段,所以在查询时候还是不会使用多列索引。
创建全文索引:
创建索引的另一种方式,给已经存在的表创建索引:
使用create index方式在已创建的表上创建索引:
这是在已经创建好的表上创建索引的另一种方式,
测试索引案例:
建表后,创建数据填充函数mock_data:
在创建函数过程中,如果出现错误提示:
ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you might want to use the less safe log_bin_trust_function_creators variable)