Tips: 面试小技巧 组合索引的最左优先原则
有一组合索引KEY(a, b, c)
问:SELECT FROM WHERE a = ? AND b = ?; 和 SELECT * FROM WHERE b = ? AND c = ?; 两条语句中,那一条会用到索引?
答:第一条会用到索引。
组合索引会遵循最左优先原则,在创建a,b,c组合索引时,会创建KEY(a), KEY(a, b)和KEY(a, b, c)三个索引。三个索引中,即,只有用到a, ab, abc时会用到索引,bc是不会用到的。
1. 导出表结构 (-d参数)
- 导出一个库中的所有表结构
mysqldump -h localhost -u root -p -d db_name > db_name.sql
- 导出一个库中的一张或多张表的表结构(user表)
mysqldump -h localhost -u root -p -d db_name user> user.sql
- 导出多个库的所有表结构
mysqldump -h localhost -u root -p -d --databases dbname1 dbname2 > db_name.sql
- 导出所有的数据库表结构
mysqldump -h localhost -u root -p -d --all-databases > all_db.sql
2. 导出表结构和数据 (上面的命令去掉 -d 参数)
3. 压缩备份(大概压缩到四分之一大小)
mysqldump -h localhost -u root -p dbname | gzip > db_name.sql.gz
4. 导入数据库
mysql> create database db_name;
mysql> source path/db_name.sql
可以直接使用phpmyadmin导出整个数据库,不会像命令一样,从服务器中导出数据时报权限错误。