我正在将访问日志转移到数据库中。
我有两张桌子:
urlRequests
id : int(10)
host : varchar(100)
path: varchar(300)
unique index (host, path)
urlAccesses
id : int(10)
request : int(10) <-- reference to urlRequests row
ip : int(4)
query : varchar(300)
time : timestamp
我需要为每个页面加载在urlAccesses中插入一行,但是urlRequests中的第一行必须与请求的主机和路径一起存在,以便urlAccesses的行可以引用它。
我知道我可以这样做:
一个。检查urlRequests中是否存在行 B.如果需要,在urlRequests中插入一行 C.在urlAccesses中插入一行,其中urlRequests的行标识为
如果urlRequests行不存在,那么每个页面加载会有三个查询。 我对MySQL很新,所以我猜测有一种方法可以更快地使用更少的查询。