#author("2019-10-25T04:58:00+00:00","default:wikiwriter","wikiwriter") &tag(MySQL/Tips); *目次 [#odaf6ad2] #contents *関連ページ [#ycebb155] *参考情報 [#la7f3b57] *データベース全般 [#n1ed4231] **InnoDBのインデックスの最大キー長 [#j3b3a2ac] -[[第32回 InnoDBインデックスの最大キー長について:MySQL道普請便り|gihyo.jp … 技術評論社:http://gihyo.jp/dev/serial/01/mysql-road-construction-news/0032]] -基本的に767バイト、innodb_large_prefixを有効にするなどして拡張すれば最大3072バイトまで拡張できる。 -ただしutf8では1文字3バイト、utf8mb4では1文字4バイトでとなる。 -MySQLのテーブル定義は文字数で指定するので、最大3072バイトまで拡張している場合でもutf8の場合「varchar(1024)」、utf8mb4の場合「varchar(768)」が限界となる。 -拡大していない場合は「varchar(255)」「varchar(191)」が限界となる。 **文字コードを確認する [#y0dfca6b] -以下のコマンドを実行する show variables like '%char%'; **全データベースを削除する [#y1715acd] -[[Drop All Databases in MySQL | Mohinish's Blog:https://rootedlabs.wordpress.com/2009/10/03/drop-all-databases-in-mysql/]]によると以下のコマンドで削除できる mysql -uroot -p -e "show databases" | grep -v Database | grep -v mysql| grep -v information_schema| grep -v test | grep -v OLD |gawk '{print "drop database " $1 ";select sleep(0.1);"}' | mysql -uroot -ppassword -もしくは削除するSQLを作成できる mysql -uroot -pxxxxx -e "show databases" | grep -v Database | grep -v mysql | grep -v information_schema| grep -v test | grep -v OLD | gawk '{print "drop database " $1";select sleep(0.1);"}' > droppeddatabases.sql -なお"grep -V"はinverse matchの意味。Databaseやmysqlは除外するという意味になる。またmysql -eの出力は表形式だがリダイレクトすると罫線部分は除外される模様。上では除外されていないがperformance_schemaも除外したほうがいいかも? mysql -uroot -pxxxxx -e "show databases" | grep -v Database | grep -v mysql | grep -v information_schema| grep -v test | grep -v OLD | gawk '{print "drop database " $1";select sleep(0.1);"}' > droppeddatabases.sql -さらにシンプルに mysql -e "show databases" | grep -Ev 'Database|^test$|mysql|_schema' | awk '{print "drop database "$1";"}' > dropdatabase.sql