每个数据库对应于数据目录下的一个目录
在一个数据库中的表对应于数据目录下的文件
数据目录也包含由服务器产生的几个状态文件如日志文件这些文件提供了关于服务器操作的重要信息对管理特别在出了问题而试图确定问题原因时很有价值例如如果某个特定查询杀死服务器你可以通过检查日志文件判别捣乱的查询
MySQL服务器怎样提供对数据的访问
在数据目录下的一切由一个单独的实体MySQL服务器mysqld管理客户程序绝不直接操作数据相反服务器提供数据可访问的切入点它是客户程序与它们想使用的数据之间的中介
当服务器启动时如果有需要它打开日志文件然后通过监听网络连接位数据目录呈现一个网络接口要访问数据客户程序建立对服务器的一个连接然后以MySQL查询传输请求来执行希望的操作服务器执行每一个操作并将结果发回用户服务器是多线程的并能服务多个同时的客户连接然而因为修改操作一个执行一个实际效果是顺序化请求以使两个客户决不能在同一时刻改变同一记录
在正常的情况下让服务器作为数据库访问的唯一仲裁者提供了避免可从同时访问数据库表的多个进程的破坏的保证管理员应该知道有时服务器没有对数据目录的独裁控制
当你在一个单个数据目录上运行多个服务器一般倪云新一个服务器管理主机上的所有数据库但是有可能运行多个服务器如果这完成提供对多个独立数据目录的访问没有相互影响的问题但哟也能启动多个服务器并指向同一个目录一般地这不是一个好主意如果你试图这样最好是你的系统提供良好的文件锁定功能否则服务器将不能正确协作如果你将多个服务器同时写入日志文件你也冒着你的日志文件称为混乱的根源的风险
在你运行isamchk和myisamchk时isamchk和myisamchk实用程序用于表的维护诊错和修复就想你想的那样因为这些程序可以修改表内容允许它们与服务器正在操作的同时对表操作这样能导致表损坏理解如何限制这种相互影响是很重要的这样你不会损坏你的表
数据目表示
每个MySQL服务器管理的数据库有自己的数据库表它是数据目录下的一个子目录其名字与它表示的数据库相同例如数据库my_db对应于数据库目录DATADIR/my_db
[] [] [] [] [] [] [] [] [] []