CREATE TABLE user ( id INT PRIMARY KEY, name VARCHAR(50), age INT, INDEX idx_name(name) );
以上代码创建了一个名为user的表,其中id是主键,name列建立了一个索引。建议在经常使用作为筛选条件的列上建立索引,以加速查询速度。
SELECT * FROM user WHERE name LIKE 'J%';
以上代码使用了索引idx_name,快速地找到了名字以J开头的用户。如果没有索引,就需要全表扫描,效率十分低下。
但是,过多的索引也会影响数据库的性能。在创建索引时需要权衡查询效率和写入速度,并限制索引的数量。
ALTER TABLE user ADD COLUMN salary DECIMAL(10,2); EXPLAIN SELECT * FROM user WHERE age >25 AND salary >5000;
以上代码添加了一列salary,并查询了age大于25且salary大于5000的用户。对于这种复杂查询,可以将多个列建立联合索引,以提高查询效率。大家可以使用EXPLAIN关键字查看查询的执行计划,以便进行优化。
MySQL微课版实训8还介绍了其他的优化技巧,如避免使用SELECT *、使用limit限制结果集大小等等。通过这些优化,大家可以充分利用MySQL数据库的能力,提高应用程序的性能和稳定性。