Great God, come quickly. This is a mysql table written by myself for a project I have done. What are the mistakes in it and what is worth optimizing?

  mysql, question

This is a table of a project I made myself. A little bit more, what is worth optimizing? It’s a little bit long. Please ask Great God Fly Me to get up.


CREATE TABLE tbl_myr_user( Userid intunsigned primarykey not null auto _ incrementcomment 'id of user, self-increasing', Usernamevarchar (45) not null comment 'username', Passwordvarchar (32) not null comment 'user password', Email varchar (128) uniquenot nullcomment' user mailbox, unique. Arguably, as a mobile phone, the mobile phone number is unique index's', Phone number varchar (16) uniquecomment 'phone number', birthday DATE NOT NULL, Gender TINYINT not null default 0 comment' 0 female 1 male', Homeland varchar (10) not null comment' hometown will not be changed once registered', Residency varchar (10) not null comment Where do you want to go? RegisterDate DATE NOT NULL COMMENT' Registration Date', Small Avatar Varchar (255) Not Null Comment' one must be set', Big Avatar Varchar (255) Not Null Comment' Big Picture of User Head', Qrcode VARCHAR(255) NULL COMMENT 'user's two-dimensional code', Isstudent TINYINT (1) not null default1comment' 0 means not a student', Where have you been? There can be statements describing these places', MD5 VARCHAR (32) NOT NULL COMMENT' MD5 value. Used to determine whether the user's data or Plan has changed', SessionId varchar (32) not null comment 'session id corresponding to current user', iemi VARCHAR(15) NOT NULL )AUTO_INCREMENT=100001; CREATE TABLE tbl_myr_plan( planId INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, userId INT UNSIGNED NOT NULL, createTime INT UNSIGNED NOT NULL, Destination varchar (45) not nullcomment 'destination. This destination should exist in the database. For example, you cannot enter Mars. Check the place name at the client', City VARCHAR(10)NOT NULL COMMENT 'city corresponding to attraction', StartDate DATE NOT NULL COMMENT 'the scheduled start date', EndDate DATE NOT NULL COMMENT 'end date', Transportation TINYINT (1) not null comment' means of transportation', Together TINYINT NOT NULL COMMENT' and who', Seek TINYINT(1) NOT NULL COMMENT' Find someone or give advice', Type TINYINT(1) NOT NULL COMMENT' vacation, play, travel, return', Images TEXT NULL COMMENT' planned picture, saved directly with json', FlightNumber Varchar (45) Null Comment' flight number or train number, not required if traveling locally', PostScript Varchar (255) Null Comment' Supplementary Note' ); CREATE TABLE tbl_myr_refresh ( userId INT UNSIGNED NOT NULL PRIMARY KEY , geohash VARCHAR(10) NOT NULL, latitude VARCHAR(20) NOT NULL, longitude VARCHAR(20) NOT NULL, Refresh time int unsigned not null comment' the time when the user refreshed when requesting data', Status TINYINT(1) COMMENT' Current Status of User' ); /** Guide is automatically classified according to cities. **/ CREATE TABLE tbl_myr_share ( shareId INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, Content VARCHAR(255) NULL COMMENT 'what the user wants to say', createTime INT NULL, Location VARCHAR (45) Not Null Comment' The position when the photo was taken, not the current position', city VARCHAR(30) NOT NULL, Score TINYINT(1) DEFAULT 0 COMMENT' Scoring This Place', userId INT UNSIGNED NOT NULL, ImageTextNullComment' uses json strings to store picture locations. Because I only read and write once', guideId INT UNSIGNED ); CREATE TABLE tbl_myr_guide( guideId INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, userId INT UNSIGNED , City VARCHAR(30) NOT NULL COMMENT 'city of current guide', createTime INT NULL, Level VARCHAR(45) NULL COMMENT 'level of current guide' ); CREATE TABLE tbl_myr_relationship ( PriuserId intunsigned not null comment 'primary userid', subUserId INT UNSIGNED NOT NULL, Type TINYINT NOT NULL COMMENT' 0 means it is pulled black, 1 means it is concerned with Ta', Createtime int unsigned not null comment 'when the relationship occurred', PRIMARY KEY (priUserId, subUserId,type) ); /** Enter three times a day. This ensures accuracy. */ CREATE TABLE tbl_myr_train ( userId INT UNSIGNED NOT NULL PRIMARY KEY, FlightNumber Varchar (45) Not Null Comment' Flight Number or Train Number', ); CREATE TABLE tbl_myr_share_comment ( commentId INT UNSIGNED NOT NULL PRIMARY KEY , shareId INT UNSIGNED NOT NULL, createTime INT UNSIGNED NULL, userId INT UNSIGNED NULL, Content VARCHAR(255) NULL COMMENT' is text if it is text. If it is voice, here is the URL link', Replyid int unsigned null default0comment' 0 means this is a new comment, otherwise it means a reply' ); CREATE TABLE tbl_myr_version ( upateDate DATE NOT NULL, IsForced TINYINT(1) COMMENT' Do you want to force users to update', newestVersionId VARCHAR(5), Update content varchar (1000) comment' what content has the client updated' );

It is suggested to split the user table into user details and basic information.
Those that are frequently queried are placed in a table, while those that are not frequently queried are placed in a table.