我有一个有 60 列(和数千行)的表,它引用了 15 个目录表,其中 3 个引用了另外 3 个目录表(整个数据库小于 1 GB)。这些表用于在 Web 应用程序中执行一些“onchange”搜索查询(我的意思是用户在屏幕上的选择/输入字段中选择或写入值,并自动更新结果,直到他/她找到寻找)。
正如您所料,这个搜索查询经常执行,因此 MySQL 难以获取结果(目前有 10 个并发用户......)。
我意识到仅对这个查询使用内存表(原始表的副本)将是一个不错的选择,但我从未处理过这些类型的表。我不知道如何管理这些表中的插入/更新/删除。我是否必须执行两次这些操作(一次在内存表中,一次在原始表中)?我没有问题可以这样做,但是,还有另一种/更好的方法吗?
我了解内存表的大小限制(我可以更改 max_heap_table_size)以及系统崩溃(使用 init_file 重新填充表)并且我有足够的 RAM 内存(系统仅使用 6 GB 安装的 16 GB)。在使用这些表格时,我还需要考虑另一件事吗?