help wantedtype/enhancementtype/performance
Description
Enhancement
When we want to return the packages to the client, our logic is:
- Prepare the packet and serialize it to a buffer allocated by the area.Allocator
- Write this data through packetIO.WritePacket, in the WritePacket, the data will be cached in a buffer writer
- Flush the buffer writer to the connection
Mostly, e.g, for write ok https://github.com/pingcap/tidb/blob/0c19f927419f6b043a345e4a2af5336272830229/server/conn.go#L1442, we can see that we don't need to double copy the buffer, we can serialize the data and write it directly to the connection.