【引子】
IT这一行在我看来是比较要求动手能力的,但是人非生而知之;人们身上的技能除了一些本能之外,大多都是通过学习而得到的。
前一段时间一直在整理素材,写一个关于explain 的系列文章;在一开始我就遇到了一个问题,就是我需要一个示例数据库,不然
没办法进行,之前从事SQL Server相关工作的时候发现SQL Server是官方是一个示例数据库的。心想MySQL应该也有,结果是找
一半天没找到,没办法只好自己设计一个,最后发现设计不是问题,问题是数据完整性和数据的量。数据完整性影响到数据在整个
逻辑上下文中的自洽性,数据的量就直接影响到优化器对执行计划的选择。所以说要构造出满足以上条件的数据库还是要耗费大量
心血的;好在今天看mysql-connector-python 8.0.11 版本的官方文档的时候看到了一个示例数据库 employees。
1、介绍employees示例数据库
1): employees 的源代码托管在github上面、下载下来把数据导入到mysql中就能用了
2): 项目地址:https://github.com/datacharmer/test_db
2、下载employees示例数据库
https://github.com/datacharmer/test_db
3、解压后目录中的内容如下
tree test_db-master/
test_db-master/
├── Changelog
├── employees_partitioned_5..sql
├── employees_partitioned.sql
├── employees.sql
├── images
│ ├── employees.gif
│ ├── employees.jpg
│ └── employees.png
├── load_departments.dump
├── load_dept_emp.dump
├── load_dept_manager.dump
├── load_employees.dump
├── load_salaries1.dump
├── load_salaries2.dump
├── load_salaries3.dump
├── load_titles.dump
├── objects.sql
├── README.md
├── sakila
│ ├── README.md
│ ├── sakila-mv-data.sql
│ └── sakila-mv-schema.sql
├── show_elapsed.sql
├── sql_test.sh
├── test_employees_md5.sql
└── test_employees_sha.sql
4、把数据导入数据库
mysql -uroot -pxxxxxx -t < test_db-master/employees.sql Warning: Using a password on the command line interface can be insecure.
+-----------------------------+
| INFO |
+-----------------------------+
| CREATING DATABASE STRUCTURE |
+-----------------------------+
+------------------------+
| INFO |
+------------------------+
| storage engine: InnoDB |
+------------------------+
+---------------------+
| INFO |
+---------------------+
| LOADING departments |
+---------------------+
+-------------------+
| INFO |
+-------------------+
| LOADING employees |
+-------------------+
+------------------+
| INFO |
+------------------+
| LOADING dept_emp |
+------------------+
+----------------------+
| INFO |
+----------------------+
| LOADING dept_manager |
+----------------------+
+----------------+
| INFO |
+----------------+
| LOADING titles |
+----------------+
+------------------+
| INFO |
+------------------+
| LOADING salaries |
+------------------+
+---------------------+
| data_load_time_diff |
+---------------------+
| NULL |
+---------------------+
5、总结
完成上面的步骤你自己的employees库就算是好了、它的结构如下:
-----